您的位置:首页技术文章
文章详情页

SpringBoot @ConfigurationProperties注解的简单使用

浏览:11日期:2023-03-09 17:42:02
目录源码使用源码

@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 @ConfigurationProperties注解的简单使用的详细内容,更多关于SpringBoot @ConfigurationProperties注解的资料请关注好吧啦网其它相关文章!

标签: Spring
相关文章: