@Autowired 和 @ Resource的區別

neutrons.發表於2020-11-23

1.Autowired 是 spring原生的;resource 是 JSR-250規範中的註解

2.Autowired 預設按照型別進行裝配,如果bean 不存在,或者存在多個會報異常 設定required 為false 不會丟擲異常即@Autowired(required=false),如果想通過名稱,可以加上@Qualifier;

resource 預設是按照名稱進行裝配, 找不到會報異常,當然也可以通過指定型別來注入,同Autowire一樣bean不存在或存在多個都會丟擲異常。

3.因為預設情況下resource是通過指定名稱所以預設情況下 Resource 是快一點的可以理解為指定了索引。當然Autowired 可以通過@Qualifier 來進行指定名稱 但是相較來說複雜化了。

相關文章