SpringBoot中的配置文件优先级、bootstrap和application的区别
SpringBoot中的配置文件主要有application.properties
或application.yml
,以及bootstrap.properties
或bootstrap.yml
。
- 优先级:
bootstrap.yml
/bootstrap.properties
优先级最高,然后是application.yml
/application.properties
。 用途:
application.yml
/application.properties
:主配置文件,用于 Spring Boot 项目的自动化配置,开发者可以在这里进行项目配置。bootstrap.yml
/bootstrap.properties
:Bootstrap 配置文件,用于在应用程序上下文完全加载之前,进行一些高优先级配置,比如说配置在启动过程中需要访问的外部配置,例如配置中心等。
区别:
- Bootstrap 配置文件先于 application 配置文件加载,因此可以用来设置一些高优先级的属性,比如设置要加载哪些配置文件。
- Bootstrap 配置文件的使用场景比较少,大部分情况下我们只需使用 application 配置文件即可。
以下是一个简单的例子:
application.properties:
app.message=Hello from application.properties
bootstrap.properties:
app.message=Hello from bootstrap.properties
在启动类中读取这个属性:
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(MyApp.class, args);
String message = context.getEnvironment().getProperty("app.message");
System.out.println(message);
}
}
当应用启动时,会先加载bootstrap.properties中的配置,然后再加载application.properties中的配置。因此,控制台会先输出 "Hello from bootstrap.properties"。
评论已关闭