SpringBoot运行找不到application.properties配置文件
运行springBoot项目启动报错:java.lang.IllegalStateException: No such application config! Please add <dubbo:application name="..." /> to your spring config。字面意思就是没找到dubbo.application.name这个属性,百度了下很多帖子遇到这个问题,但是并没有解决我的问题,在此记录下。
遇到这个问题第一个可能性是配置文件出错,比如yml文件冒号后面少了一个空格,或者属性拼写错误。
第二种可能性是 resources目录没有Mark as resources root,导致读取不到对应目录下的配置文件(idea)
我检查完配置文件和目录,仍然报这个错,只有去代码里找答案。在ConfigFileApplicationListener类中,可以看到 DEFAULT_SEARCH_LOCATIONS 默认加载位置有:"classpath:/,classpath:/config/,file:./,file:./config/",DEFAULT_NAMES 默认配置文件名:"application"
其实问题就出在了这里,但是没有注意到这里,继续去找源码看帖子,有说依赖冲突的,有说facts没配置好的,甚至有人回答Springboot版本的问题,很奔溃。
最后去target目录下看编译好的代码,才发现并没有application.properties文件,原来问题出在了这里,豁然开朗,问题转化成了:为什么配置文件没编译出来。
仔细检查目录,发现公司的配置文件放在了resources/spring下面,把他挪到resources下面,编译成功。运行成功。
这次查找问题给了我两个启发:
- 报了错,一些东西不能觉得是理所应当的,比如说理所应当的觉得配置文件没放错位置,应该再仔细的排除问题。
- 学会使用Idea的target查看编译后的代码,之前没用过,现在简直是方便,idea真香