首页 / 软件开发 / JAVA / 使用Spring注解注入属性
使用Spring注解注入属性2011-03-23 JavaEye博客 kenshin541.1. 使用注解以前我们是怎样注入属性的类的实现:public class UserManagerImpl implements UserManager {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
...
}配置文件:< bean id="userManagerImpl" class="com.kedacom.spring.annotation.service.UserManagerImpl">
< property name="userDao" ref="userDao" />
< /bean>
< bean id="userDao" class="com.kedacom.spring.annotation.persistence.UserDaoImpl">
< property name="sessionFactory" ref="mySessionFactory" />
< /bean>1.2. 引入@Autowired注解(不推荐使用,建议使用@Resource)类的实现(对成员变量进行标注)public class UserManagerImpl implements UserManager {
@Autowired
private UserDao userDao;
...
}或者(对方法进行标注)public class UserManagerImpl implements UserManager {
private UserDao userDao;
@Autowired
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
...
}配置文件< bean id="userManagerImpl" class="com.kedacom.spring.annotation.service.UserManagerImpl" />
< bean id="userDao" class="com.kedacom.spring.annotation.persistence.UserDaoImpl">
< property name="sessionFactory" ref="mySessionFactory" />
< /bean>@Autowired可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。以上两种不同实现方式中,@Autowired的标注位置不同,它们都会在Spring在初始化userManagerImpl这个bean时,自动装配userDao这个属性,区别是:第一种实现中,Spring会直接将UserDao类型的唯一一个bean赋值给userDao这个成员变量;第二种实现中,Spring会调用 setUserDao方法来将UserDao类型的唯一一个bean装配到userDao这个属性。1.3. 让@Autowired工作起来要使@Autowired能够工作,还需要在配置文件中加入以下代码< bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" />