@ConfigurationProperties

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@ConfigurationProperties相关的知识,希望对你有一定的参考价值。

参考技术A application.yml 和 application.properties 等方便了我们进行配置的管理和统一,但是在使用的是时候,我们还是通过@Value("$xxxx")的形式去使用,例如

但是使用了@ConfigurationProperties配置之后,可以进一步简化@Value()的使用,最后的结果会变成这个简单

可以不需要在pom.xml中增加依赖就可以使用了,反正我是没有加

1.在yml文件中写好配置参数

添加@ConfigurationProperties注解在类的头部,并加上prefix的前缀,指定查找对应前缀test的配置
bean对象要有get 和set 的方法,所以使用了@Data注解
最后使用@Component 将对象都暴露成一个组件,交给spring去管理,方便其他得放的使用,不推荐使用@EnableConfigurationProperties(TestConfigurationPropertyBean.class)注解

3.编写测试类来进行测试

基本完成

bean

输出结果

启动服务 就会报错,错误信息中会提示我们是name 子弹注入了空值,但是他是不允许为空的

3.未知的属性 ignoreUnknownFields
使用改注解可以尽量的查找出在yml中声明了,但是没有用的注解,这样可以简化和删除一些当初设定了但是后面没有用到的注解。默认ignoreUnknownFields = true,即使有多余的配置,也会忽略不管,但是将参数设置为false之后ignoreUnknownFields = false,服务启动的时候就会全部查找所有的yml 或者properties配置进行匹配,发现存在没有匹配的,都会报错
yml

bean

默认情况下,Spring Boot 将会启动失败,并抛出异常:

如果将ignoreInvalidFields = true,那么程序启动的时候将会忽略这种转换错误的值,但是这样会给后续的程序排错带来更多不必要的麻烦,所以还是使用默认值false,程序启动的时候就会自动检验转换是否符合要求。

以上是关于@ConfigurationProperties的主要内容,如果未能解决你的问题,请参考以下文章