zoukankan      html  css  js  c++  java
  • @Autowired与@Resource的区别


    二者所属包

    @Resource:javax.annotation.Resource j2ee

    @Autowired:org.springframework.beans.factory.annotation.Autowired Spring

     

    区别

    1. @Autowired默认按类型装配,@Resource默认安照名称进行装配。
    • @Autowired默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false,如:

      @Autowired(required=false) 
      

      如果我们想使用名称装配,可以结合@Qualifier注解进行使用。

      @Autowired() @Qualifier("Dao") 
      private Dao Dao;     
      
    • @Resource的名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找。如果注解写在setter方法上默认取属性名进行装配。 当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。

     

    相同

    @Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上

     

    实践总结

    1. 用 @Resource注解在字段上,可不用写setter方法了,因为J2EE的内部注解解析器已经会自动完成setter的功能。而目前@Autowired不行。
    2. 可减少与spring的耦合。

     

    ----------------------------------unfinished----------------------------------

  • 相关阅读:
    maven工程的目录结构
    集合的区别
    名词解析
    1.(字符串)-判断字符串是否是子集字符串
    1.(字符串)-判断两字符串是否相等
    python max函数技巧
    1.(字符串)-子字符串位置查找
    numpy线性代数np.linalg
    Python图像库PIL 使用
    pyhthon-chr
  • 原文地址:https://www.cnblogs.com/haore147/p/4688517.html
Copyright © 2011-2022 走看看