SpringBoot项目读取配置文件中参数给类中的变量赋值时,,报错:
Error creating bean with name 'testController': Unsatisfied dependency expressed through field 'XXX'; |nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testClass': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'test1.test2.test3' in value "${test1.test2.test3}"
(1)首先就是要检查你的拼写有没有问题,在@Value注解中写的跟配置文件中写的单词是不是一样!!
(2)配置或依赖问题;
(1)检查@Value注解中的参数路径与配置文件中是否一样,就是'test1.test2.test3'这个有没有写错,很多人都是因为拼写错了,以为是程序和配置问题,结果弄了半天发现方向错了;
(2)配置和使用方法,分三步:
第一步:添加依赖,在pom文件中添加
org.springframework.boot spring-boot-configuration-processor true
第二步:在application.yml中设置配置
test1: test2: test3: 11111111
第三步:在要读取application.yml中数值的类上,加上注解
@ConfigurationProperties(prefix = "test1") public class TencentSmsSender extends AbstractSmsSender { @Value("${test1.test2.test3}") private String sdkAppId; ................... }
只要这简单三步就可以了。