Spring中的@ConditionalOnProperty作用和用法詳解
@ConditionalOnProperty的作用和用法
在spring boot中有時候需要控制配置類是否生效,可以使用@ConditionalOnProperty注解來控制@Configuration是否生效
配置類代碼
@Configuration
@ConditionalOnProperty(prefix = "filter",name = "loginFilter",havingValue = "true")
public class FilterConfig {
//prefix為配置文件中的前綴,
//name為配置的名字
//havingValue是與配置的值對比值,當(dāng)兩個值相同返回true,配置類生效.
@Bean
public FilterRegistrationBean getFilterRegistration() {
FilterRegistrationBean filterRegistration = new FilterRegistrationBean(new LoginFilter());
filterRegistration.addUrlPatterns("/*");
return filterRegistration;
}
}配置文件中的代碼
filter.loginFilter=true
測試
當(dāng)配置文件中值為true時:輸出了"過濾器"三個字,說明loginFilter生效了,說明配置類生效了.

當(dāng)配置文件中值為false時:沒有輸出了"過濾器"三個字,說明loginFilter沒有生效,說明配置類沒有生效.

總結(jié)
通過@ConditionalOnProperty控制配置類是否生效,可以將配置與代碼進行分離,實現(xiàn)了更好的控制配置. @ConditionalOnProperty實現(xiàn)是通過havingValue與配置文件中的值對比,返回為true則配置類生效,反之失效.
到此這篇關(guān)于Spring中的@ConditionalOnProperty作用和用法詳解的文章就介紹到這了,更多相關(guān)@ConditionalOnProperty作用和用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java 線程池ThreadPoolExecutor源碼解析
這篇文章主要介紹了Java 線程池ThreadPoolExecutor源碼解析2022-03-03
Java使用Flexmark-Java輕松實現(xiàn)Markdown全場景轉(zhuǎn)換
Flexmark-Java是一款高性能的Markdown解析器,無論是將Markdown轉(zhuǎn)換為HTML、PDF還是DOCX,這款工具都能提供高速處理、高度靈活性以及詳細的AST構(gòu)建能力,幫助開發(fā)者輕松應(yīng)對各類文檔轉(zhuǎn)換需求,本文給大家介紹了如何用Flexmark-Java輕松實現(xiàn)Markdown全場景轉(zhuǎn)換2025-11-11
Java中5種方式實現(xiàn)String反轉(zhuǎn)
下面小編就為大家?guī)硪黄狫ava中5種方式實現(xiàn)String反轉(zhuǎn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。2016-06-06
如何使用IDEA查看java文件編譯后的字節(jié)碼內(nèi)容
這篇文章主要介紹了如何使用IDEA查看java文件編譯后的字節(jié)碼內(nèi)容,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
Java Development Kit(JDK)使用及說明
文章介紹了JDK(Java開發(fā)工具包)的定義、功能及與JRE、JVM的區(qū)別,強調(diào)JDK包含開發(fā)工具和庫,適合開發(fā)者,而JRE僅用于運行程序,同時概述了JDK23版本新增特性及安裝步驟2025-09-09
Java開發(fā)之普通web項目轉(zhuǎn)為Maven項目的方法
這篇文章主要給大家介紹了關(guān)于Java開發(fā)之普通web項目轉(zhuǎn)為Maven項目的相關(guān)資料,文中通過圖文將轉(zhuǎn)換的方法步驟介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
mybatis-plus中l(wèi)ambdaQuery()與lambdaUpdate()比較常見的使用方法總結(jié)
mybatis-plus是在mybatis的基礎(chǔ)上做增強不做改變,簡化了CRUD操作,下面這篇文章主要給大家介紹了關(guān)于mybatis-plus中l(wèi)ambdaQuery()與lambdaUpdate()比較常見的使用方法,需要的朋友可以參考下2022-09-09
在Android系統(tǒng)中使用WebViewClient處理跳轉(zhuǎn)URL的方法
這篇文章主要介紹了在Android系統(tǒng)中使用WebViewClient處理跳轉(zhuǎn)URL的方法,實現(xiàn)代碼為Java語言編寫,是需要的朋友可以參考下2015-07-07

