Spring boot 中有时候需要控制配置类是否生效,使用 @ConditionalOnProperty 注解来控制 @Bean 是否生效。
例:
@ConditionalOnProperty(prefix = "config",name = "enable",havingValue = "true", matchIfMissing = true)
prefix : 是配置前缀,可有可无。
name : 是配置名称。完整名称或部分名称,与 prefix 配合使用,与 value 不可同时使用。
havingValue : 对比值,与name组合使用,该值与配置中值相同,则配置生效,不相同则配置不生效。
matchIfMissing : 缺省值,缺少配置时,是否可以加载。缺少配置时, true: 正常加载,false:报错。
这个例子配置文件中就是 config.enable 。且 值为 true。 可以没有该配置,
有此配置后,单元测试时,可以控制本地屏蔽非必要Bean引入。
公共包添加上此配置,可以平台非必要Bean注入。