SpringBoot - @EnableConfigurationProperties注解使用详解
将标注了@ConfigurationProperties注解的类注入到Spring容器中。该注解是用来开启对@ConfigurationProperties注解的支持。也就是@EnableConfigurationProperties注解告诉Spring容器能支持@ConfigurationProperties注解。
·
@EnableConfigurationProperties注解的作用是什么?
将标注了@ConfigurationProperties注解的类注入到Spring容器中。该注解是用来开启对@ConfigurationProperties注解的支持。也就是@EnableConfigurationProperties注解告诉Spring容器能支持@ConfigurationProperties注解。
如果不添加该注解,@ConfigurationProperties注解的特性就失效了吗?不是的,大家可以参考:@ConfigurationProperties注解使用详解的使用。
@EnableConfigurationProperties注解如何使用?
一般情况下会定义两个文件,一个用于绑定application.xml中的配置信息,一个用于定义配置类。
①. 定义一个属性类用于绑定配置信息:
@Data
@ConfigurationProperties(prefix = "spring.drools")
public class DroolsProperties {
// 规则文件和决策表的路径(多个目录使用逗号分割)
private String path;
// 更新缓存的轮询周期 - 单位:秒(默认30秒)
private Long update;
// 模式: stream 或 cloud(默认stream模式)
private String mode;
// 是否开启监听器:true = 开, false = 关闭(默认开启)
private boolean listener;
// 是否自动更新:true = 开, false = 关闭(默认开启)
private boolean autoUpdate;
// 是否开启DRL的语法检查: true = 开, false = 关闭(默认开启)
private boolean verify;
// 是否开启REDIS的缓存: true = 开, false = 关闭(默认开启)
private boolean useRedis;
}
②. 定义一个配置类用于开启文件属性的绑定功能:
// 配置类
@Configuration
// 开启属性文件绑定功能
@EnableConfigurationProperties(DroolsProperties.class)
public class DroolsConfig {
@Bean
@ConditionalOnMissingBean(name = "kieTemplate")
public KieTemplate kieTemplate(DroolsProperties droolsProperties) {
KieTemplate kieTemplate = new KieTemplate();
kieTemplate.setPath(droolsProperties.getPath());
kieTemplate.setMode(droolsProperties.getMode());
if (droolsProperties.isAutoUpdate()) {
// 启用自动更新
kieTemplate.setUpdate(droolsProperties.getUpdate());
} else {
// 关闭自动更新
kieTemplate.setUpdate(999999L);
}
kieTemplate.setListener(droolsProperties.isListener());
kieTemplate.setVerify(droolsProperties.isVerify());
kieTemplate.setUseRedis(droolsProperties.isUseRedis());
return kieTemplate;
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)