千家信息网

SpringBoot中的@ConfgurationProperties注解怎么使用

发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,本篇内容介绍了"SpringBoot中的@ConfgurationProperties注解怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理
千家信息网最后更新 2025年01月17日SpringBoot中的@ConfgurationProperties注解怎么使用

本篇内容介绍了"SpringBoot中的@ConfgurationProperties注解怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

源码

@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @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中的@ConfgurationProperties注解怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0