@Autowired和@Resource的區別

轉載:http://www.javashuo.com/article/p-tyxvpgbe-ko.htmlhtml

用途

作bean的注入時使用java

歷史

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

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

共同點

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

不一樣點

  @Autowired  默認按類型裝配   spa

        依賴對象必須存在,若是要容許null值,能夠設置它的required屬性爲false   @Autowired(required=false)code

        也能夠使用名稱裝配,配合@Qualifier註解htm

        

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屬性,能夠區分。blog

相關文章
相關標籤/搜索