Springboot-属性配置
使用@...@获取maven配置文件中的属性;
例如:
app:
encoding: "@project.build.sourceEncoding@" #获取pom.xml中的sourceEccoding
java:
version: "@java.version@" #获取java版本
Spring配置外部化处理
如果想要在启动spring应用前进行其他配置,采用构建SpringApplication类进行添加属性或采用SpringApplicationBuilder通过构造者模式构建;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(MyApplication.class);
application.setBannerMode(Banner.Mode.OFF);
application.run(args);
}
}
public class MyApplication {
public static void main(String[] args) {
new SpringApplicationBuilder()
.bannerMode(Banner.Mode.OFF)
.sources(MyApplication.class)
.run(args);
}
}
Yaml占位符
若spring启动时需要动态设置某些值我们可以采用${}占位符的方式配置属性;
例如:
server:
port: "${port:8080}"
上述表示为若在启动参数中传递-server.port值有效,则替换此处属性配置,无效则默认使用8080。这里可以参考@Value注解进行读取配置时,也可以采用占位符的方式。
注意:如果继承了 spring-boot-starter-parent POM 文件,那么 maven-resources-plugins 的默认过滤符已从 ${*} 更改为 @ (也就是说,现在使用的是 @maven.token@ ,而不是 ${maven.token} ),这样做是为了避免与 Spring 风格的占位符发生冲突。如果您直接为 application.properties 启用了 Maven 过滤功能,那么您可能也需要更改默认的过滤符,以使用其他分隔符。

浙公网安备 33010602011771号