Spring?Boot中使用@Value加載配置的方法
@Value注解相信很多Spring Boot的開發(fā)者都已經(jīng)有接觸了,通過使用該注解,我們可以快速的把配置信息加載到Spring的Bean中。
比如下面這樣,就可以輕松的把配置文件中key為com.didispace.title配置信息加載到TestService中來使用
@Service
public class TestService {
@Value("${com.didispace.title}")
private String title;
}這個注解可以說非常的好用!但是為什么不推薦大家使用它呢?核心原因是:當(dāng)我們使用@Value來直接提取配置信息使用的時候,會產(chǎn)生配置信息加載的碎片化。比如,同一個配置,可能背多個Service或者Controller使用,當(dāng)我們再要修改它的時候,就會存在一個遺漏的風(fēng)險。我們無法方便的維護(hù)這些配置加載而導(dǎo)致一些問題。
那么,如果不使用@Value,我們應(yīng)該用什么來替代呢?
我比較推薦的就是使用@ConfigurationProperties來分類和加載各種配置信息,比如,我要加載關(guān)于com.didispace的相關(guān)配置時候,就寫一個這樣的實現(xiàn):
@Configuration
@ConfigurationProperties(prefix = "com.didispace")
public class DidispaceProperties {
private String title;
}這個DidispaceProperties就會加載com.didispace開頭的配置。其他Service或者Controller要使用這些配置的時候,就通過注入DidispaceProperties就也可以了。如果要修改配置相關(guān)的邏輯,也只需要修改DidispaceProperties中的內(nèi)容即可,而不是到處找@Value的配置。
另外,在這里,其實還可以增加對配置的校驗,主要在pom.xml中引入spring-boot-starter-validation模塊。然后修改配置類,增加@Validated注解和具體校驗注解,比如:
@Validated
@Configuration
@ConfigurationProperties(prefix = "com.didispace")
public class DidispaceProperties {
@NotNull
private String title;
}
這就輕松實現(xiàn)配置的校驗了,是不是很方便呢?
到此這篇關(guān)于為什么不推薦在Spring Boot中使用@Value加載配置的文章就介紹到這了,更多相關(guān)Spring Boot使用@Value加載配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java迭代器移除元素出現(xiàn)并發(fā)修改異常的原因及解決
這篇文章主要介紹了java迭代器移除元素出現(xiàn)并發(fā)修改異常的原因及解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
MyBatis使用<foreach>標(biāo)簽like查詢報錯解決問題
這篇文章主要介紹了MyBatis使用<foreach>標(biāo)簽like查詢報錯解決問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
Java實現(xiàn)文件或文件夾的復(fù)制到指定目錄實例
本篇文章主要介紹了Java實現(xiàn)文件或文件夾的復(fù)制到指定目錄實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03
使用SpringBoot中web項目推薦目錄結(jié)構(gòu)的問題
這篇文章主要介紹了SpringBoot中web項目推薦目錄結(jié)構(gòu)的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01
Java Stream中的Spliterator類概念及原理解析
Spliterator是Java 8引入的一個接口,位于java.util包中,它結(jié)合了迭代器(Iterator)的遍歷能力和分割器(Splitter)的分割能力,本文將詳細(xì)介紹Spliterator的概念、原理、作用、類中定義的關(guān)鍵方法,以及它在Stream API中的實際應(yīng)用,感興趣的朋友一起看看吧2024-08-08

