记录一下springboot 2.3.x @value注入失败问题
开发接口服务遇到一个奇葩的问题
1.@value注入失败,顺带发现识别不了spring.profiles.active环境
启动环境spring.profiles.active= @profile.active@ profile.active是dev
@Value("${device.offtime}")
private int offtime;
一般情况下,只需要注意下类名上面是否加了@Service就OK
或者把要注入的变量复制到application.properties里面,看是否能成功
参考
测试application.properties里面没问题,
然后使用application-dev.properties启动,@value注入,怎么都识别不了;
然后在实现类上加了
@PropertySource("classpath:application-${spring.profiles.active}.properties")
结果直接报错class path resource [application-dev.properties] cannot be opened because it does not exist
调试
项目启动死活识别不了application-dev.properties配置
然后网上搜索
按照解决办法
maven install 安装打包,结果install以后启动
继续报错是commons-pool2这个包有问题
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
把这行注释掉,重新刷新
<!--<version>2.0</version>-->
</dependency>
把版本号去掉,重新clean,install,就识别到了application-dev.properties配置文件
最奇葩的是,整个项目除了application-dev.properties这个配置文件识别不到,其他都可以,application-prod.properties,application-test.properties都可以
这就整的很尴尬.
所以添加依赖包,版本真的很重要.
后续遇到的奇葩问题
后续把.idea 删除掉.重新install以后.@value注入怎么也弄不好了…放弃了
重新创建了一个新的项目,然后把文件复制过去.就没有遇到这样的问题了.
等有时间在看看.为什么会遇到这样的问题吧//
参考
记录一次SpringBoot中@Value注入失败
https://www.cnblogs.com/erlou96/p/13718122.html
springBoot无法加载application.properties
https://blog.csdn.net/qq_40184195/article/details/107715862
这个我没有测试,但是在项目中见这种方式的注入
springboot使用@value注入配置失败
https://blog.csdn.net/weixin_43421537/article/details/103798911