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>