1 对userDao对象使用注解版的方法
在配置文件中写入
<context:annotation-config />,,当然前面的 xmlns是不可缺少的
<?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-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:annotation-config />
<bean id="u" class="com.bjsxt.dao.impl.UserDAOImpl">
</bean>
<bean id="u2" class="com.bjsxt.dao.impl.UserDAOImpl">
</bean>
<bean id="userService" class="com.bjsxt.service.UserService" >
</bean>
</beans>
2 在UserService里面调用UserDao的时候使用(一般写在set方法上)
@Autowired
publicvoid setUserDAO(@Qualifier("u") UserDAO userDAO) {
this.userDAO = userDAO;
}
3 注意一点: userDao的 set/get方法仍然是不可少的
此处指定了 name为 u 的 类,如果不指定默认是 配置文件中的 id或name
4 使用@Resource 和使用@Autowired效果是一样的,笔者没有找到有什么区别,都可以运行,记得把配置文件里的name改为 userDAO,保证名字是相同的
@Resource
public void setUserDAO( UserDAO userDAO) {
this.userDAO = userDAO;
}
5 执行了 运行正确
@Test
public void testAdd() throws Exception {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
UserService service = (UserService)ctx.getBean("userService");
service.add(new User());
ctx.destroy();
}