預加載資源文件需要先啟用功能:
<build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> 啟用預加載,默認false </resource> </resources> </build>
在src/main/resources里,新增一個測試用的application.PRoperties文件
# application.propertiesapplication.name=${env.PATH}application.name=${settings.offline}application.name=${java.home}application.version=${pom.name}application.version=${project.version}
先看普通效果,運行cmd
mvn process-resources
被放到target/classes里
# application.propertiesapplication.name=C://ProgramData//Oracle//Java//javapath;C://Windows//system32;C://Windows;C://Windows//System32//Wbem;C://Windows//System32//WindowsPowerShell//v1.0//;F://MySQL//MySQL Server 5.1//bin;D://Program Files//TortoiseSVN//bin;D://Program Files//TortoiseGit//bin;d://Program Files (x86)//Git//cmd;F://apache-maven-3.2.3//bin;F://Java//jdk1.8.0_25//bin;F://HashiCorp//Vagrant//bin;F://Tomcat 7.0//binapplication.name=falseapplication.name=F://Java//jdk1.8.0_25//jreapplication.version=my-appapplication.version=1.0-SNAPSHOT
現在新建個src/main/filters/filter.properties,用于預加載:
# filter.propertiesmy.filter.value=hello!
更改pom.xml:
<build> <filters>指明預加載資源 <filter>src/main/filters/filter.properties</filter> </filters> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build>
這時候就可以在application.properties中直接引用了:
message=${my.filter.value}
就會變成:
message=Hello!
這樣就實現了資源文件間的屬性引用,而無需聲明二者的關聯(Spring?)
新聞熱點
疑難解答