@ConditionalOnProperty的用法
在spring boot中,当需要控制配置类是否生效时可以使用@ConditionalOnProperty注解来控制@Configuration是否生效。当然也可以控制@Component等注解。
package com.zys.example.config; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Configuration; import javax.annotation.PostConstruct; /** * 系统初始化操作 */ @Configuration @Slf4j @ConditionalOnProperty(prefix = "application",name = "enable",havingValue = "true") public class WebAppConfig { @PostConstruct public void init() { log.info(">>>系统正在进行初始化......"); } }
上述需要在配置文件开启此配置
application.enable=true
当不在配置配置或配置其值是false时则此配置类不会生效。在系统启动时也就不会打印这个日志信息。只有设置为true时才会打印。
@ConditionalOnProperty是通过havingValue的值与配置文件中的值对比,返回为true则配置类生效,反之失效。其中prefix是配置的前缀,name是属性名。
就是这么简单,你学废了吗?感觉有用的话,给笔者点个赞吧 !