SpringBoot @ConfigurationProperties注解的简单使用

网友投稿 256 2023-01-13

SpringBoot @ConfigurationProperties注解的简单使用

源码

@Target({ElementType.TYPE, ElementType.METHOD})

@Retention(RetentionPolicy.RUNTIME)

@Documented

public @interface ConfigurationProperties {

@AliasFor("prefix")

String value() default "";

@AliasFor("valuehttp://")

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 = "Defauhttp://lt"

// setter

}

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

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:保定韵达快递物流查询单号(河北韵达快递单号查询)
下一篇:SpringBoot配置ShedLock分布式定时任务
相关文章

 发表评论

暂时没有评论,来抢沙发吧~