天天看點

Resource 與 Autowired 的差別|學習筆記

開發者學堂課程【Java 面試疑難點串講 3:開發工具及架構:Resource 與 Autowired 的差別】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/26/detail/557

Resource 與 Autowired 的差別

在使用 Spring 的自動的 Annotation 注解的時候經常會見到有兩類的注解: @Resource (個人常用)、@Autowired,

如果你要想去了解這兩個的差別,最好的做法是先認真學完了在 Spring 依賴注入的時候講解過的自動的配置操作,在 Spring 裡面自動的配置模式有兩類:按照類型、按照名稱。

l @Autowired:

則表示按照類型進行自動注入,缺點:如果類型相同,則無法注入;

l @Resource:

具備按照類型自動注入的特點,而後如果現在類型相同,則可以設定一個名稱也就是說你使用 @Component、@Service 等注解設定自動掃描的時候可以設定一個名字,而這個名字就可以在 @Resource 中使用了。

SpringBoot 裡面,因為其自動支援一些環境配置,是以如果使用的是 Autowired 那麼如果配置了多個相同類型 的 Bean 的話,那麼将無法進行準确的注入操作。那麼必須使用 @Resource 完成。