背景
用Jenkins構(gòu)建maven自動化打包時齿梁,因為需要從properties文件讀取參數(shù)來區(qū)分是本地Debug版還是正式上線版,配置完就不能用了。
Failed to load ApplicationContext
原因
兩個錯誤都出現(xiàn)徐紧,因為本來是用IDEA的默認(rèn)配置的resources文件,由于需要參數(shù)化構(gòu)建炭懊,所以修改了pom.xml
<build>
<resources>
<resource>
<filtering>true</filtering>
<directory>${project.basedir}/src/main/resources</directory>
<includes>
<include>*.properties</include>
</includes>
</resource>
</resources>
</build>
實際上工程的資源文件如上圖并级,如果寫為*.properties,那么在target目錄下就會發(fā)現(xiàn)侮腹,所有的xml配置文件也都消失了嘲碧,只剩下一個log4j.properties。
解決方法
<include>*.properties</include>改為
<include>**/*</include>
Could not resolve placeholder '' in value "${}"
原因
在spring mvc中使用注解方式獲取properties中的值@Value("${propertieName}") ,在spring的application.xml里配置過后父阻,還需要在spring mvc的配置文件里配置一遍愈涩,否則spring mvc不認(rèn)識望抽。
解決方法
在spring-mvc.xml里添加該句
<context:property-placeholder location="classpath:properties/*.properties"/>