天天看點

面試題系列---【@Autowired和@Resource的差別】

1.@Resource注解

  預設按執行個體名稱注入,如果名稱找不到,就按類型注入,如果同類型的有多個執行個體,就報錯。

  舉例:

  問題:現有MyService接口,兩個實作MyServiceImpl01和MyServiceImpl02,在Controller中引入MyService myService,則先按名稱myService引入,結果發現沒有,則轉為通過類型注入,結果發現同類型的有兩個實作MyServiceImpl01和MyServiceImpl02,這時會報錯。 

  解決:要麼删掉一個實作類,要麼在Controller中引入MyService myServiceImpl01(或02),具體到實作類方法名,首字母小寫。

2.@Autowired注解

  預設按執行個體類型注入,如果存在多個類型,則自動通過名稱注入,如果名稱也沒找到,則報錯。

繼續閱讀