我是靠谱客的博主 顺心月饼,最近开发中收集的这篇文章主要介绍SpringBoot - @ConfigurationProperties注解使用详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

@ConfigurationProperties注解的作用是什么?

将标注了@ConfigurationProperties注解的Spring容器中的Bean与配置文件中的属性进行一一绑定,用于更加快速、方便的读取配置文件的内容。
也就是:先将属性对象注册到Spring容器中,再进行属性的绑定。

@ConfigurationProperties注解可以搭配使用的注解有哪些?

只要能够将属性对象注册到Spring容器中的注解都可以搭配使用。
@RestController、@Service、@Repository、@Component、@Configuration、@Bean都可以和@ConfigurationProperties注解搭配使用。

@ConfigurationProperties注解如何使用?

1.需要将配置对象类注入到Spring容器中,一般使用@Component(组件类)进行注入,当然@RestController、@Service、@Repository都属于@Component,因为他们有更准确的意义,所以一般使用@Component;或者不使用组件类,而是在启动类上使用@EnableConfigurationProperties(DroolsProperties.class),将配置对象类注入到Spring容器中;或者在定义Bean的时候将配置信息和配置对象的属性进行一一绑定。
2.需要指定前缀,用于表示该前缀下面的配置信息需要和配置对象的属性进行一一绑定;
3.只能加载全局配置文件(application.yml/.properties,application-XXX.yml/.properties);
4.支持 数据校验,如:不能为空,长度,正则等校验;
5.支持复杂的数据类型,如:list、map;

①. 使用@Component + @ConfigurationProperties(prefix = “spring.drools”),这两个注解都标注在配置对象上。

DroolsProperties.java如下:

@Data
@Component
@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;
}

②. @EnableConfigurationProperties(DroolsProperties.class) + @ConfigurationProperties(prefix = “spring.drools”) ,注意:配置对象上的注解只有@ConfigurationProperties,@EnableConfigurationProperties标注在启动类上。

DroolsProperties.java内容同上:

@Data
@ConfigurationProperties(prefix = "spring.drools")
public class DroolsProperties {
	...
}
MySpringApplication.java如下:

@EnableCustomSwagger2
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@EnableConfigurationProperties(DroolsProperties.class)
public class MySpringApplication{
    public static void main(String[] args) {
        SpringApplication.run(MySpringApplication.class, args);
    }
}

③. @Bean + @ConfigurationProperties(prefix = “spring.drools”),配置类上没有注解,在定义Bean时将将配置信息和配置对象的属性进行一一绑定。

DroolsProperties.java内容同上:

@Data
public class DroolsProperties {
	...
}
MySpringApplication.java如下:

@EnableCustomSwagger2
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class MySpringApplication{
	@Bean
    @ConfigurationProperties(prefix = "person")
    public DroolsProperties droolsProperties (){
        DroolsProperties p = new DroolsProperties();
        return p;
    }
    
    public static void main(String[] args) {
        SpringApplication.run(MySpringApplication.class, args);
    }
}

配置文件内容如下:

spring:
  drools:
    use-redis: true
    path: classpath:com/tiantu/damp/**/*.drl
    mode: stream
    auto-update: true
    update: 60
    listener: true
    verify: false

最后

以上就是顺心月饼为你收集整理的SpringBoot - @ConfigurationProperties注解使用详解的全部内容,希望文章能够帮你解决SpringBoot - @ConfigurationProperties注解使用详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部