@Autowired和@Resource的區別


轉載:https://www.cnblogs.com/wangxiaoce/p/7056907.html

用途

做bean的注入時使用

歷史

       @Autowired       屬於Spring的注解               org.springframework.beans.factory.annotation.Autowired

      @Resource  不屬於Spring的注解,JDK1.6支持的注解     javax.annotation.Resource

共同點

  裝配bean. 寫在字段上,或寫在setter方法

不同點

  @Autowired  默認按類型裝配   

        依賴對象必須存在,如果要允許null值,可以設置它的required屬性為false   @Autowired(required=false)

        也可以使用名稱裝配,配合@Qualifier注解

        

1 public class TestServiceImpl {
2     @Autowired
3     @Qualifier("userDao")
4     private UserDao userDao; 
5 }

  @Resource  默認按名稱進行裝配,通過name屬性進行指定

復制代碼
public class TestServiceImpl {
    // 下面兩種@Resource只要使用一種即可
    @Resource(name="userDao")
    private UserDao userDao; // 用於字段上
    
    @Resource(name="userDao")
    public void setUserDao(UserDao userDao) { // 用於屬性的setter方法上
        this.userDao = userDao;
    }
}
復制代碼

總結:大白話解釋,@Autowired自動注解,舉個例子吧,一個類,倆個實現類,Autowired就不知道注入哪一個實現類,而Resource有name屬性,可以區分。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM