@ConfigurationProperties遇到的坑及解决
想着偷懒,直接使用@ConfigurationProperties(prefix="xxx")读取配置文件,不使用@Value("${xxx}")去一个一个的注入。
遇到的坑:
创建完成类以后忘记生成set方法,导致启动项目无法读取配置文件;使用@Value("${xxx}")在没有生成set方法前提下,能注入配置参数。
注:
1.如果使用@ConfigurationProperties注入配置参数,切记生成get和set方法。
2.使用@Value("${xxx}"),可以不生成get和set方法。
@ConfigurationProperties报错的解决方式
使用spring initializr快速创建Springboot项目时,@ConfigurationProperties(prefix = “person”),注解会有红色报错的标识。
如下:

解决方式一:
在该类上再加一个@Component注解,便可解决问题。
/* 将配置文件中所配置的属性映射到Perso @ConfigurationProperties:将该类中所有的属性和配置文件中的相关配置进行绑定。 prefix = "person":指定将配置文件下peoson和属性进行一一映射。 该类必须在容器中,才可使用@ConfigurationProperties(prefix = "person")功能。 */ @Component @ConfigurationProperties(prefix = "person")
解决方式二:
暴力解决方式。将红色标识强行取消。此种情况下,简单测试可以正常进行,但是不知后续会不会出现问题。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
System.getProperty(“line.separator“)含义及意义详解
这篇文章主要介绍了System.getProperty(“line.separator“)含义,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-05-05
Admin - SpringBoot + Maven 多启动环境配置实例详解
这篇文章主要介绍了Admin - SpringBoot + Maven 多启动环境配置,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-03-03
深入学习java并发包ConcurrentHashMap源码
这篇文章主要介绍了深入学习java并发包ConcurrentHashMap源码,整个 ConcurrentHashMap 由一个个 Segment 组成,Segment 代表”部分“或”一段“的意思,所以很多地方都会将其描述为分段锁。,需要的朋友可以参考下2019-06-06


最新评论