现象:小于1.3.0版本如1.2.6的spring boot, 当指定profile进行参数打入的时候,发现没有问题,但是比如改用1.3.0,1.3.1及其以上版本的时候,发现参数打不进去,经过比对spring-boot-starter-parent的1.2系列与1.3系列的pom.xml,发现在1.3系列的pom中含有如下配置:
<properties> <java.version>1.6</java.version> <resource.delimiter>@</resource.delimiter> <!-- delimiter that doesn‘t clash with Spring ${} placeholders 这是重点--> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.target>${java.version}</maven.compiler.target></properties>
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> <configuration> <delimiters> <delimiter>${resource.delimiter}</delimiter> </delimiters> <useDefaultDelimiters>false</useDefaultDelimiters><!-- 这是重点--> </configuration></plugin>通过上面两个重点指出的地方,我们可以看到,我们在其他文件里取profile中的参数的时候,需要如下方式[email protected]@要想改为原来${}取值方式,实际上很简单,只需要将将上述配置中的useDefaultDelimiters设置为true
时间: 2024-08-10 23:27:02