maven的filtering沒有起作用,沒有把占位符給替換掉。(大家可以執行mvn clean package,看看打包后的jar里面的application.properties文件,是否有替換占位符)
filtering無效的原因是,pom.xml繼承了spring boot的依賴
spring boot把默認的占位符號${}改成了@
方法一:
在pom.xml里面添加如下內容
<properties> <resource.delimiter>${}</resource.delimiter> </properties>
方法二:
application.properties里面不用${},改成@
spring.datasource.url= @db.url@
spring.datasource.username=@db.username@
spring.datasource.password=@db.password@
spring.datasource.driver-class-name=@db.driverClassName@
spring.datasource.validationQuery=@db.validationQuery@
方法三:
pom.xml不繼承spring-boot-starter-parent,dependency里面配置全部的依賴和版本號(繼承了之后,很多依賴不用寫version)
方法四:
把
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent>
改成
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>1.5.9.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>