SpringBoot @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注解的资料请关注脚本之家其它相关文章!
- SpringBoot中的@ConfigurationProperties注解解析
- SpringBoot中@ConfigurationProperties注解的使用与源码详解
- 关于SpringBoot的@ConfigurationProperties注解和松散绑定、数据校验
- SpringBoot2底层注解@ConfigurationProperties配置绑定
- SpringBoot中@ConfigurationProperties注解实现配置绑定的三种方法
- SpringBoot中注解@ConfigurationProperties与@Value的区别与使用详解
- Springboot之@ConfigurationProperties注解解读
相关文章
java中Memcached的使用实例(包括与Spring整合)
这篇文章主要介绍了java中Memcached的使用实例(包括与Spring整合),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-07-07
Mybatis-Plus使用MetaObjectHandler实现自动填充实体对象字段
在我们使用Mybatis-Plus时,一些简单的CRUD,你会发现好多表,许多字段是重复的,如果我们每次更新或者新增,都要手动赋值,那么会出现许多不必要的重复操作,所以本文介绍了Mybatis-Plus使用MetaObjectHandler实现自动填充实体对象字段,需要的朋友可以参考下2024-11-11
Nacos后台频繁打印get changedGroupKeys:[]的问题及解决
这篇文章主要介绍了Nacos后台频繁打印get changedGroupKeys:[]的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-01-01
application.yaml与bootstrap.yaml的使用
这篇文章主要介绍了application.yaml与bootstrap.yaml的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-08-08


最新评论