占位符配置替换
配置文件中出来的值都会经过已经存在的Environment的处理,这样可以引用之前定义的值,不需要重复出现多个值,便于后续的维护。
app.name=MyApp
app.description=${app.name} is a Spring Boot application
短参数的使用
在命令行中,大家比较偏向使用短参数,如--port=9000替代--server.port=9000
可以通过配置的占位符引用来实现
server.port=${port:8080}
与Maven分隔符闺冲突的问题
默认情况下,maven分隔符如下:
<delimiters>
<delimiter>${*}</delimiter>
<delimiter>@</delimiter>
</delimiters>
但是工程POM如果是继承spring-boot-starter-parent,那么,这个分隔符就会进行修改
在spring-boot-starter-parent中进行了修改只有@maven.token@才会被maven替换。
代码片段
...
<artifactId>spring-boot-starter-parent</artifactId>
<packaging>pom</packaging>
<name>spring-boot-starter-parent</name>
....
<properties>
<java.version>1.8</java.version>
<resource.delimiter>@</resource.delimiter>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimiter>${resource.delimiter}</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
</plugin>
网友评论