参考来源:http://elf8848.iteye.com/blog/442806
1,首先修改spring配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:annotation-config/> 这条语句的作用,解释地址:http://mushiqianmeng.blog.51cto.com/3970029/723880
<context:component-scan base-package="com"/> spring会自动扫描com下面有注解的类,自动装配bean
2,classpath中加入common-annotations.jar 包
3,
》自动装配类成员变量【不需要get set方法 ,也可以写在set方法上面】
@Autowired
@Qualifier("sessionFactory")//按名称装配,默认是按类型装配
public SessionFactory sessionFactory;
》定义Bean的注解
@Controller
@Controller("Bean的名称")
定义控制层Bean,如Action
@Service
@Service("Bean的名称")
定义业务层Bean
@Repository
@Repository("Bean的名称")
定义DAO层Bean
@Component
定义Bean, 不好归类时使用.
到此结束:
下面贴一下我的各相关文件:
》applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:annotation-config/>
<context:component-scan base-package="com"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/map"></property>
<property name="username" value="root"></property>
<property name="password" value="abc"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
</bean>
</beans>
》struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="test" extends="struts-default">
<action name="*_*" class="{1}" method="{2}">
<result name="success">/pages/success.jsp</result>
</action>
</package>
</struts>
》dao类
package com.dao.impl;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;
@Repository("testDaoImpl")
public class TestDaoImpl {
@Autowired
@Qualifier("sessionFactory")
public SessionFactory sessionFactory;
public Session session;
public void testDaoImplMethod(){
System.out.println("testDaoImplMethod execute ");
session=sessionFactory.openSession();
System.out.println("sessionFactory:"+sessionFactory);
System.out.println("session: "+session);
}
}
》Action类
@Controller("testAction")//这个是bean的name struts.xml中,action的class即是引用的bean 所以根据配置,访问的时候,应该是testAction_methodname
昨天没想到这个 笨死了
public class TestAction extends ActionSupport{
@Autowired
public TestDaoImpl testDaoImpl;
public TestDaoImpl getTestDaoImpl() {
return testDaoImpl;
}
public String testActionMethod(){
System.out.println("testActionMethod execute");
testDaoImpl.testDaoImplMethod();
return SUCCESS;
}
}
访问路径:
localhost:8080/projectname//testAction_testActionMethod.action
昨天一直没访问对,老是报错,具体什么错,忘了,呵呵