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 过滤功能,那么您可能也需要更改默认的过滤符,以使用其他分隔符。

posted @ 2026-09-22 20:25  归鹭  阅读(2)  评论(0)    收藏  举报