@Autowired或@Resource注解

原创 2013年10月31日 13:34:33



在java代码中使用@Autowired或@Resource注解方式进行装配,这两个注解的区别是:@Autowired 默认按类型装配,@Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。
    @Autowired
    private PersonDao  personDao;//用于字段上
    @Autowired
    public void setOrderDao(OrderDao orderDao) {//用于属性的setter方法上
        this.orderDao = orderDao;
    }
@Autowired注解是按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false。如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:
    @Autowired  @Qualifier("personDaoBean")
    private PersonDao  personDao;
@Resource注解和@Autowired一样,也可以标注在字段或属性的setter方法上,但它默认按名称装配。名称可以通过@Resource的name属性指定,如果没有指定name属性,当注解标注在字段上,即默认取字段的名称作为bean名称寻找依赖对象,当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找依赖对象。
    @Resource(name=“personDaoBean”)
    private PersonDao  personDao;//用于字段上
注意:如果没有指定name属性,并且按照默认的名称仍然找不到依赖对象时, @Resource注解会回退到按类型装配。但一旦指定了name属性,就只能按名称装配了。
 
 
步骤:
(1).修改beans.xml
Java代码 
在java代码中使用@Autowired或@Resource注解方式进行装配。但我们需要在xml配置文件中配置以下信息:  
<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/>  
</beans>  
 这个配置隐式注册了多个对注释进行解析处理的处理器:AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor,PersistenceAnnotationBeanPostProcessor,RequiredAnnotationBeanPostProcessor
      注: @Resource注解在spring安装目录的lib\j2ee\common-annotations.jar
 
   <context:annotation-config/>  必不可少 

相关文章推荐

spring下应用@Resource, @Autowired 和 @Inject注解进行依赖注入的差异

转载自:http://blog.csdn.net/augus6/article/details/9745451?utm_source=tuicool&utm_medium=referral 原本转本...

spring---注解@Resource和@Autowired

我不生产代码,我只是代码的搬运工。谢谢。 转载自http://www.cnblogs.com/AloneSword/p/3370462.html spring2.5...

Spring注解@Autowired与@Resource的区别

1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。  2、@Autowired默认按类型装配(这个注解是属业spring的),默认情况下...

Spring 注解 javax.annotation.Resource和@Autowired

@Resource和@Autowired两者都是做bean的注入使用。 其实@Resource并不是Spring的注解,他的包是javax.annotation.Resource 需要导入。但是...

spring 注解@Resource 和 @Autowired的区别

@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分...

Spring中@Resource、@Autowired、@Qualifier的注解注入及区别

原文地址:http://blog.csdn.net/baple/article/details/17891755 spring2.5提供了基于注解(Annotation-based)的配置,我们可...

关于@Autowired和@Resource注解的区别

spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以及@PreDestroy。   @Res...
  • lulu147
  • lulu147
  • 2016年12月19日 16:17
  • 173

Spring Resource、Autowired、Qualifier的注解注入及区别

 说明和区别 spring4.1 提供了基于注解(Annotation-based)的配置,我们可以通过注解的方式来完成注入依赖。在Java代码中可以使用 @Resource或者@Autowi...
  • fclwd
  • fclwd
  • 2015年02月27日 17:05
  • 4136

注解学习笔记-@SuppressWarnings、@Autowired与@Resource

@SuppressWarnings注解

spring @Autowired与@Resource注解

转载出处:http://my.oschina.net/Tsher2015/blog/616865Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:@Autowired或@Resource注解
举报原因:
原因补充:

(最多只允许输入30个字)