springboot中有两种配置文件,分别是application与bootstrap,其文件格式可以是properties和yml。
加载顺序不同
bootstrap先于application加载,可以简单理解为先加载bootstrap,后启动springboot程序(比如去连接数据库),最后再加载application。
应用场景不同
-
bootstrap主要用于从额外的资源来加载配置信息,还可以在本地外部配置文件中解密属性。比如说使用 Spring Cloud
Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息. -
application 配置文件 可以用来定义应用级别的属性,主要用于Spring Boot 项目的自动化配置。
一段写在bootstrap里的配置,用来连接nacos配置中心
# 默认加载配置中心的gulimall-coupon.properties,gulimall-coupon配置文件,gulimall-gateway.yml不会默认加载
# 注意在nacos建立gulimall-product.yml文件时,不要忘了yml后缀,选择yml格式是不会默认加上yml后缀的
spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
# 命名空间
spring.cloud.nacos.config.namespace=24f71afc-535d-4d09-bd2c-f600bdc7f82b
# 如果不加这句,默认读取default_group,如果没有默认分组,就读取本地配置文件
spring.cloud.nacos.config.group=dev
spring.cloud.nacos.config.extension-configs[0].data-id=datasource.yml
spring.cloud.nacos.config.extension-configs[0].group=dev
# 每次读取数据时,是否重新从配置中心读
spring.cloud.nacos.config.extension-configs[0].refresh=true
spring.cloud.nacos.config.extension-configs[1].data-id=mybatis.yml
spring.cloud.nacos.config.extension-configs[1].group=dev
spring.cloud.nacos.config.extension-configs[1].refresh=true
spring.cloud.nacos.config.extension-configs[2].data-id=other.yml
spring.cloud.nacos.config.extension-configs[2].group=dev
spring.cloud.nacos.config.extension-configs[2].refresh=true
如何使用bootstrap
在SpringBoot 2.4.x版本之后,对于bootstrap.properties/bootstrap.yaml配置文件的支持,需要导入如下依赖:
<!-- 将bootstrap作为配置文件-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.0.2</version>
</dependency>