Spring——自動裝配(@Autowired/@Profile/底層元件)
阿新 • • 發佈:2020-02-24
本文介紹Spring中關於自動裝配的方法和規則,以及@Profile動態啟用的用法和一個例子。
一、@Autowired自動裝配
@Autowired註解可以加在構造器、屬性、方法、方法引數上。
自動裝配規則
預設優先按照型別去容器中找對應的元件,如果存在多個相同型別,再根據屬性名稱作為元件id去容器中查詢。
我們可以通過@Qualifier配合@Autowired指定要裝配的元件的id
也可以在元件上新增@Primary指定首選的bean
@Autowired有一個屬性required預設為true,表示一定需要這個元件,如果在容器中找不到對應元件,則會報錯。
在元件的有參構造方法中,會自動進行裝配,不需要新增@Autowired註解。
二、XXXAware獲取底層元件
比如其中的ApplicationContextAware,實現這個介面,就能夠得到applicationContext並使用
Red類實現了兩個XXXAware介面,下面我們來進行測試
容器啟動後列印如下:
說明在物件建立時,會呼叫介面規定的方法,使我們獲取到底層元件
三、@Profile動態啟用切換元件
1、註解標註位置
可以新增在配置類或配置類中@Bean修飾的方法上。
如果標在配置類中的@Bean方法上,則滿足相應啟用條件,才會註冊對應的bean
如果直接標在配置類上,滿足啟用條件可以使用這個配置類,否則配置類中的一切配置無效。
2、啟用方法
1)通過新增虛擬機器引數
-Dspring.profiles.active="profile1,profile2"
2)通過改變容器環境引數
&n