Spring中的@ConditionalOnProperty作用和用法详解
@ConditionalOnProperty的作用和用法
在spring boot中有时候需要控制配置类是否生效,可以使用@ConditionalOnProperty注解来控制@Configuration是否生效
配置类代码
@Configuration
@ConditionalOnProperty(prefix = "filter",name = "loginFilter",havingValue = "true")
public class FilterConfig {
//prefix为配置文件中的前缀,
//name为配置的名字
//havingValue是与配置的值对比值,当两个值相同返回true,配置类生效.
@Bean
public FilterRegistrationBean getFilterRegistration() {
FilterRegistrationBean filterRegistration = new FilterRegistrationBean(new LoginFilter());
filterRegistration.addUrlPatterns("/*");
return filterRegistration;
}
}配置文件中的代码
filter.loginFilter=true
测试
当配置文件中值为true时:输出了"过滤器"三个字,说明loginFilter生效了,说明配置类生效了.

当配置文件中值为false时:没有输出了"过滤器"三个字,说明loginFilter没有生效,说明配置类没有生效.

总结
通过@ConditionalOnProperty控制配置类是否生效,可以将配置与代码进行分离,实现了更好的控制配置. @ConditionalOnProperty实现是通过havingValue与配置文件中的值对比,返回为true则配置类生效,反之失效.
到此这篇关于Spring中的@ConditionalOnProperty作用和用法详解的文章就介绍到这了,更多相关@ConditionalOnProperty作用和用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java 线程池ThreadPoolExecutor源码解析
这篇文章主要介绍了Java 线程池ThreadPoolExecutor源码解析2022-03-03
Java使用Flexmark-Java轻松实现Markdown全场景转换
Flexmark-Java是一款高性能的Markdown解析器,无论是将Markdown转换为HTML、PDF还是DOCX,这款工具都能提供高速处理、高度灵活性以及详细的AST构建能力,帮助开发者轻松应对各类文档转换需求,本文给大家介绍了如何用Flexmark-Java轻松实现Markdown全场景转换2025-11-11
Java Development Kit(JDK)使用及说明
文章介绍了JDK(Java开发工具包)的定义、功能及与JRE、JVM的区别,强调JDK包含开发工具和库,适合开发者,而JRE仅用于运行程序,同时概述了JDK23版本新增特性及安装步骤2025-09-09
mybatis-plus中lambdaQuery()与lambdaUpdate()比较常见的使用方法总结
mybatis-plus是在mybatis的基础上做增强不做改变,简化了CRUD操作,下面这篇文章主要给大家介绍了关于mybatis-plus中lambdaQuery()与lambdaUpdate()比较常见的使用方法,需要的朋友可以参考下2022-09-09
在Android系统中使用WebViewClient处理跳转URL的方法
这篇文章主要介绍了在Android系统中使用WebViewClient处理跳转URL的方法,实现代码为Java语言编写,是需要的朋友可以参考下2015-07-07


最新评论