1. 程式人生 > >Spring——自動裝配(@Autowired/@Profile/底層元件)

Spring——自動裝配(@Autowired/@Profile/底層元件)

本文介紹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