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

本文介紹Spring中關於自動裝配的方法和規則,以及@Profile動態激活的用法和一個例子。spring

 

1、@Autowired自動裝配

@Autowired註解能夠加在構造器、屬性、方法、方法參數上。app

 自動裝配規則

默認優先按照類型去容器中找對應的組件,若是存在多個相同類型,再根據屬性名稱做爲組件id去容器中查找。測試

咱們能夠經過@Qualifier配合@Autowired指定要裝配的組件的idui

也能夠在組件上添加@Primary指定首選的beanspa

@Autowired有一個屬性required默認爲true,表示必定須要這個組件,若是在容器中找不到對應組件,則會報錯。對象

 在組件的有參構造方法中,會自動進行裝配,不須要添加@Autowired註解。blog

 

 

2、XXXAware獲取底層組件 

 

好比其中的ApplicationContextAware,實現這個接口,就可以獲得applicationContext並使用

Red類實現了兩個XXXAware接口,下面咱們來進行測試接口

 

容器啓動後打印以下:虛擬機

 

 說明在對象建立時,會調用接口規定的方法,使咱們獲取到底層組件io

 

3、@Profile動態激活切換組件

一、註解標註位置

能夠添加在配置類或配置類中@Bean修飾的方法上。

 

 

 

若是標在配置類中的@Bean方法上,則知足相應激活條件,纔會註冊對應的bean

若是直接標在配置類上,知足激活條件可使用這個配置類,不然配置類中的一切配置無效。

二、激活方法

1)經過添加虛擬機參數

-Dspring.profiles.active="profile1,profile2"

2)經過改變容器環境參數

相關文章
相關標籤/搜索