在spring boot中有时候需要控制配置类是否生效,可以使用@ConditionalOnProperty注解来控制@@Configuration是否生效

步骤一:配置类代码


@Configuration
@ConditionalOnProperty(prefix = "application", value = "enable", havingValue = "true")
public class TestConfig {
@PostConstruct
public void test() {
System.out.println("初始化配置");
}
}


@ConditionalOnProperty的作用和用法_配置文件


步骤二:配置文件代码


application.enable=true


@ConditionalOnProperty的作用和用法_配置文件_02


步骤三:输出结果

@ConditionalOnProperty的作用和用法_系统启动_03


步骤四:总结

当不在配置配置或配置其值是false时则此配置类不会生效。在系统启动时也就不会打印这个日志信息。只有设置为true时才会打印。

@ConditionalOnProperty是通过havingValue的值与配置文件中的值对比,返回为true则配置类生效,反之失效。其中prefix是配置的前缀,name是属性名。