天天看點

@Value 取指派詳解與 @ConfigurationProperties 對比@Value 取值注入@ConfigurationProperties VS @Value

1、@Value 與 @ConfigurationProperties 都可以從全局配置檔案中擷取值然後注入到屬性中

@Value 取值注入

* 以前在Spring核心配置檔案beans.xml用如下配置為某個類的屬性注入值

* <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

*      <property name="driverClassName" value="${jdbc.driverclass}"></property>

*      <property name="url" value="${jdbc.url}"></property>

*      <property name="username" value="root"></property>

*      <property name="password" value="123456"></property>

* </bean>

application. yml

1、使用 “@Value” 注解從全局配置檔案 "application.yml" 取值,然後為指定的屬性指派。

 配置檔案"application.yml"

@Value 取指派詳解與 @ConfigurationProperties 對比@Value 取值注入@ConfigurationProperties VS @Value

POJO 屬性取指派

@Value 取指派詳解與 @ConfigurationProperties 對比@Value 取值注入@ConfigurationProperties VS @Value

@ConfigurationProperties VS @Value

@Value 取指派詳解與 @ConfigurationProperties 對比@Value 取值注入@ConfigurationProperties VS @Value

松散綁定支援

配置檔案裡面用的lastName,注入值的地方用@value("${person.last-name}")可以成功注入值

SpEl 支援

@value("#{11*2}")

複雜類型封裝支援  

@value("${person.maps}") 可以成功的從配置檔案中取出來值然後指派進去

@Value 取指派詳解與 @ConfigurationProperties 對比@Value 取值注入@ConfigurationProperties VS @Value

JSR303資料校驗支援  (下面支援的lastName一定要用郵箱格式)

@Value 取指派詳解與 @ConfigurationProperties 對比@Value 取值注入@ConfigurationProperties VS @Value

1、兩者都可以從配置檔案 *.yml 與 *.properties 中擷取到值;

2、如果項目中隻是在某個業務邏輯中需要擷取一下配置檔案中的某項值,使用 @Value 即可;

3、如果項目中專門編寫了一個 JavaBean 來和配置檔案進行映射,則直接使用@ConfigurationProperties即可;

4、具體要具需求而定。

@Value 取指派詳解與 @ConfigurationProperties 對比@Value 取值注入@ConfigurationProperties VS @Value

繼續閱讀