- @Autowired自动装配
@Autowired
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}默认按类型寻找,然后会去xml文件中自动寻找跟UserDAO(第一个字母小写也就是userDAO)项目的bean,赋值给userDAO。如果需要指定需找bean的名称,则添加@Qualifier("u");u为准备寻找的bean。另外注意,在使用spring annotation前要在xml中添加<context:annotation-config/>,可以再获取xml同时加载这些annotation指定的bean
- @Resource:@Resource(name="u")
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}相当于上面的@Autowired
@Qualifier("u")。@Resource默认是按名称寻找。除此之外。@Autowired和@resource可以写在字段上面,如下,这样可以省去写get,set方法,推荐使用:@Resource注解在字段上,这样就不用写setter方法了,并且这个注解是属于J2EE的,减少了与spring的耦合。这样代码看起就比较优雅。
@Resource private CustomerPreferenceDao customerPreferenceDao;
- @Component:可以省去编写xml中的bean,在xml添加 <context:component-scan base-package="com.gxk"></context:component-scan>表示去com.gxk中寻找@Component注解(在class上加上此标签表示这是一个bean对象)@Resource(name="u")
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}表示在其中注入userDAO的bean对象 - @PostConstruct,@PreDestroy:在方法上添加这俩个注解表相当于<bean id="userService" class="com.gxk.service.UserService" init-method="init" destroy-method="destroy" scope="prototype">
- 构造方法注入: <bean id="admin" class="com.gxk.dao.impl.AdminDAOImpl"></bean> <bean id="userService" class="com.gxk.service.UserService" init-method="init" destroy-method="destroy" scope="prototype">
<constructor-arg>
<ref bean="admin"/>
</constructor-arg>
</bean> - setter注入<constructor-arg>
<ref bean="admin"/>
</constructor-arg>改成<property name="userDAO" ref="admin"></property>
spring annotation
最新推荐文章于 2019-12-21 12:34:32 发布