|
|
默認注入型別 | 多個同型別Bean | 注入失敗 | 依賴 | 使用目標(@Target) |
| @AutoWired | 通過type |
默認首先安裝屬性名稱進行注入 結合@Qualifier注解(value屬性)設定注入的Bean 或通過@Primary注解優先選擇某個Bean,優先級低于@Qualifier |
可以通過required設定為false忽略 | Spring |
CONSTRUCTOR, METHOD, PARAMETER, FIELD, ANNOTATION_TYPE |
| @Resource | 通過bean名稱 | 通過設定name屬性指定Bean,不識別@Primary | 報錯且不可忽略 | javax |
TYPE, FIELD, METHOD |
| @Inject | 通過bean名稱 | 沒有屬性,識別@Primary | 報錯且不可忽略 | javax,需手動匯入 |
METHOD, CONSTRUCTOR, FIELD |
通過bean名稱注入時,如果是@Component,@Service,@Repository注解,默認按首字母小寫類名稱匹配
補充:
@AutoWired使用:
- CONSTRUCTOR:用于構造時,可用于函式宣告或引數上
- METHOD:set函式時用于函式宣告,用于引數上該方法不會執行;@Bean函式時用于函式宣告或引數上均可
- PARAMETER:見以上兩種用法
- FIELD:常用用法
- 另外,@AutoWired可以用于陣列賦值,比如:DemoService有兩個實作類,DemoServiceImpl1和DemoServiceImpl2,可以在引數或函式宣告上使用@AutoWired注解后,引數中用 DemoService[] 接收bean物件,可通過@Order注解控制陣列中實作物件的順序
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/543732.html
標籤:其他
