本文介紹Spring中關於自動裝配的方法和規則,以及@Profile動態激活的用法和一個例子。spring
@Autowired註解能夠加在構造器、屬性、方法、方法參數上。app
默認優先按照類型去容器中找對應的組件,若是存在多個相同類型,再根據屬性名稱做爲組件id去容器中查找。測試
咱們能夠經過@Qualifier配合@Autowired指定要裝配的組件的idui
也能夠在組件上添加@Primary指定首選的beanspa
@Autowired有一個屬性required默認爲true,表示必定須要這個組件,若是在容器中找不到對應組件,則會報錯。對象
在組件的有參構造方法中,會自動進行裝配,不須要添加@Autowired註解。blog
好比其中的ApplicationContextAware,實現這個接口,就可以獲得applicationContext並使用
Red類實現了兩個XXXAware接口,下面咱們來進行測試接口
容器啓動後打印以下:虛擬機
說明在對象建立時,會調用接口規定的方法,使咱們獲取到底層組件io
能夠添加在配置類或配置類中@Bean修飾的方法上。
若是標在配置類中的@Bean方法上,則知足相應激活條件,纔會註冊對應的bean
若是直接標在配置類上,知足激活條件可使用這個配置類,不然配置類中的一切配置無效。
-Dspring.profiles.active="profile1,profile2"