SpringBoot @ConfigurationProperties注解的简单使用

 更新时间:2021年05月24日 11:37:06   作者:WinterJay  
即便现在简化了配置,但是一个独立的配置文件总是易于理解而且使人安心的。Spring在构建完项目后,会默认在resources文件夹下创建一个application.properties文件,application.yml也是一样的效果。@ConfigurationProperties可以获取配置文件中的数据,将其注入类。

源码

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ConfigurationProperties {
    @AliasFor("prefix")
    String value() default "";

    @AliasFor("value")
    String prefix() default "";

    boolean ignoreInvalidFields() default false;

    boolean ignoreUnknownFields() default true;
}

使用

向注解中传入配置文件中的前缀名,如果配置文件如下:

myConfigs:
  config1:
    field1: f1
    field2: f2
    field3: f3

那么代码中的配置类应该这样写:

@Component
@ConfigurationProperties("myConfigs.config1")
public class MyConfig1 {
    String field1;
    String field2;
    String field3;
}

如上所示,field1, field2, field3三个属性就被绑定到了对象上。

注意到我们使用了@Component,实际上我们使用配置类都是将其注入到其他类中,所以我们往往将其注册为Bean。

ignoreInvalidFields默认为false,不合法的属性的属性会默认抛出异常;
ignoreUnknownFields默认为true, 未能识别的属性会被忽略(所以打错了名字就会被忽略了)

@ConfigurationProperties(prefix="config.prefix", ignoreInvalidFields=true, ignoreUnknownFields=false)
public class MyConfig {
    // fields
}

Spring Boot的绑定规则相当宽松,myField, my-field, my_field等都能识别绑定到myField上。

可以给字段设定默认值,这样配置中没有传入时会使用默认值。

@ConfigurationProperties("your.prefix")
public class YourConfig {
    private String field = "Default"
    // setter
}

类的字段必须要有public访问权限的setter方法。

在很多情况下public的setter方法时必须的,使用IDEA的话,这里推荐Alt+Insert(Windows, Mac使用Alt+n)生成;当然,想使用Lombok也可以

以上就是SpringBoot @ConfigurationProperties注解的简单使用的详细内容,更多关于SpringBoot @ConfigurationProperties注解的资料请关注脚本之家其它相关文章!

相关文章

  • Java中Double除保留后小数位的几种方法(小结)

    Java中Double除保留后小数位的几种方法(小结)

    这篇文章主要介绍了Java中Double保留后小数位的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Spring Security+Spring Data Jpa如何进行安全管理

    Spring Security+Spring Data Jpa如何进行安全管理

    这篇文章主要介绍了Spring Security+Spring Data Jpa如何进行安全管理,帮助大家更好的理解和学习Spring Security框架,感兴趣的朋友可以了解下
    2020-09-09
  • java中List去除重复数据的5种方式总结

    java中List去除重复数据的5种方式总结

    这篇文章主要给大家总结介绍了关于java中List去除重复数据的5种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Spring Schedule Task动态改写Cron配置方式

    Spring Schedule Task动态改写Cron配置方式

    这篇文章主要介绍了Spring Schedule Task动态改写Cron配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 详解SpringBoot Starter作用及原理

    详解SpringBoot Starter作用及原理

    大家都知道基于 SpringBoot 开发项目可以简化 Spring 应用的搭建以及开发过程,提高程序员开发效率,这是由于其“约定大约配置”的策略及其自动装配的特点,Starter 就是自动装配的具体实现,本文详细介绍了SpringBoot Starter作用及原理,欢迎大家来阅读学习
    2023-04-04
  • Java中List与数组相互转换实例分析

    Java中List与数组相互转换实例分析

    这篇文章主要介绍了Java中List与数组相互转换的方法,实例分析了Java中List与数组相互转换中容易出现的问题与相关的解决方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-05-05
  • Java利用DelayQueue实现延迟任务代码实例

    Java利用DelayQueue实现延迟任务代码实例

    这篇文章主要介绍了Java利用DelayQueue实现延迟任务代码实例,DelayQueue 是一个支持延时获取元素的阻塞队列, 内部采用优先队列 PriorityQueue 存储元素,同时元素必须实现 Delayed 接口,需要的朋友可以参考下
    2023-12-12
  • Java开启线程的四种方法案例详解

    Java开启线程的四种方法案例详解

    这篇文章主要介绍了Java开启线程的四种方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • SpringBoot项目中同时操作多个数据库的实现方法

    SpringBoot项目中同时操作多个数据库的实现方法

    在实际项目开发中可能存在需要同时操作两个数据库的场景,本文主要介绍了SpringBoot项目中同时操作多个数据库的实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Mybatis中的Criteria条件查询方式

    Mybatis中的Criteria条件查询方式

    这篇文章主要介绍了Mybatis中的Criteria条件查询方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07

最新评论