看了很多网上的解决方式,你可能没遇到过这种解决办法。
网上很多都是说配置了多个使用了多个PropertyPlaceholderConfigurer或者多个
的原因或者是多个 PropertyPlaceholderConfigurer
与
混合使用。
或者是配置文件路径错了,而我这个解决方式却很奇葩,找遍全网,没找到这样的解决方案 😢
1.报错
报错和大家都是一样的,Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder
配置文件里面的内容没有生效。
我配置了启动参数(yml单独在项目之外,所以使用启动参数来定位yml地址),那就是启动参数不行或者位置不对。
我当时是这样配置的(业务原因,具体内容不太方便展示哈):
也就是说vm options里面没有yml地址,program arguments里面写了yml地址
2.解决方法
将program arguments里面的内容复制到vm options里面去,ok,重新启动!
我的配置
-Dspring.config.location=绝对路径地址 // 注意:这里是到你的application.yml的父文件夹,-Dspring.cloud.bootstrap.name=application-Dspring.profiles.active=dev
3.思考
配置启动参数,网上说的是vm options
program arguments
这两个来配置启动参数都可以的,我的项目只有用vm options才行,不知道为什么,可能spring版本问题?
我用的版本:springboot1.5.16.RELEASE spring4.3.19.RELEASE
最后,解决bug花了我很长时间,呜呜呜~~ 如果能够帮到你,这篇文章的意义就更大了。
来源地址:https://blog.csdn.net/qq_54640079/article/details/127868776