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注解的资料请关注脚本之家其它相关文章!

相关文章

  • 一文详解Spring Boot可以同时处理多少请求

    一文详解Spring Boot可以同时处理多少请求

    SpringBoot是一个流行的Java开发框架,它被广泛用于构建Web应用程序,但是,开发人员通常会担心它的性能问题,特别是在高负载条件下,Spring Boot能够同时处理多少请求是一个重要的问题,在本文中,我们将讨论SpringBoot的请求处理能力,并介绍如何提高性能
    2023-10-10
  • Java使用FTP上传文件并模拟接受的方法

    Java使用FTP上传文件并模拟接受的方法

    这篇文章主要介绍了Java使用FTP上传文件并模拟接受的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 深入理解Java对象的序列化与反序列化的应用

    深入理解Java对象的序列化与反序列化的应用

    本篇文章是对Java中对象的序列化与反序列化进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • mybatis-plus返回map自动转驼峰配置操作

    mybatis-plus返回map自动转驼峰配置操作

    这篇文章主要介绍了mybatis-plus返回map自动转驼峰配置操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Spring Boot 快速入门指南

    Spring Boot 快速入门指南

    Spring 框架是非常著名的 Java 开源框架,历经十多年的发展,整个生态系统已经非常完善甚至是繁杂,Spring Boot 正是为了解决这个问题而开发的,为 Spring 平台和第三方库提供了开箱即用的设置,只需要很少的配置就可以开始一个 Spring 项目
    2017-03-03
  • SpringBoot实现yml配置文件为变量赋值

    SpringBoot实现yml配置文件为变量赋值

    这篇文章主要介绍了SpringBoot实现yml配置文件为变量赋值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • 详解Java中的字节码增强技术

    详解Java中的字节码增强技术

    字节码增强技术就是一类对现有字节码进行修改或者动态生成全新字节码文件的技术。本文将通过示例详细说说Java的字节码增强技术,需要的可以参考一下
    2022-10-10
  • Java8实现优雅的获取重复字符与次数

    Java8实现优雅的获取重复字符与次数

    这篇文章主要为大家详细介绍了在Java8中,我们应该如何进行字符及字符串的去重,以及计算去重次数,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2023-12-12
  • MyBatis 管理和查找TypeHandler的方法

    MyBatis 管理和查找TypeHandler的方法

    MyBatis通过TypeHandlerRegistry组件集中管理和查找TypeHandler,TypeHandler用于处理Java类型和JDBC类型之间的转换,本文介绍MyBatis 管理和查找TypeHandler的方法,感兴趣的朋友一起看看吧
    2025-03-03
  • Fastjson反序列化随机性失败示例详解

    Fastjson反序列化随机性失败示例详解

    这篇文章主要为大家介绍了Fastjson反序列化随机性失败示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08

最新评论