bootstrap.yml配置文件
Spring Cloud应用程序通过创建“ bootstrap ”上下文来运行,该上下文是主应用程序Application的父上下文。它负责从外部源加载配置属性,并负责解密本地外部配置文件中的属性。这两个上下文共享一个Environment?,它是任何Spring应用程序的外部属性的来源。默认情况下,引导程序属性(不是?bootstrap.properties?,而是引导程序阶段加载的属性)具有较高的优先级,因此它们不能被本地配置覆盖。
引导上下文使用与主应用程序上下文不同的约定来定位外部配置。可以使用?bootstrap.yml?来代替?application.yml?(或?.properties?),而将引导程序和外部环境的外部配置很好地分开。以下清单显示了一个示例:
bootstrap.yml
spring:
application:
name: order_service
cloud:
config:
uri: ${SPRING_CONFIG_URI:http://localhost:8888}
如果您的应用程序需要来自服务器的任何特定于应用程序的配置,则最好设置?spring.application.name?(在?bootstrap.yml?或?application.yml?中)。为了将属性?spring.application.name?用作应用程序的上下文ID,必须在?bootstrap.[properties | yml]?中进行设置。
如果要检索特定的配置文件配置,还应该在?bootstrap.[properties | yml]?中设置?spring.profiles.active?。您可以通过设置?
spring.cloud.bootstrap.enabled=false?来完全禁用引导过程(例如,在系统属性中)。
SpringCloud 的项目
在 SpringCloud 的项目中,配置文件 bootstrap.yml主要是用于应用程序上下文的引导阶段,该配置文件的加载是在 application.yml 之前。
在SpringCloud中有两种上下文,一种是bootstrap,另外一种是application, bootstrap是应用程序的父上下文。
bootstrap.yml配置文件的使用场景:
1、使用配置中心时,这时需要在bootstrap配置文件中添加连接到配置中心的信息,来加载外部配置中心的配置信息
2、一些固定的不能被覆盖的属性
3、一些加密/解密的信息
项目中 bootstrap.yml 示例
spring:
application:
name: order-service
##下面是环境区分,主要不同环境不同文件获取
---
#测试环境
spring:
profiles: beta
#nacos
cloud:
nacos:
discovery:
server-addr: 172.0.0.1:8848
namespace: 21406c22-abef-4472-953e-tyea2aeb167a
username: nacos
password: nacos
config:
server-addr: 172.0.0.1:8848
username: nacos
password: nacos
namespace: 21406c22-abef-4472-953e-tyea2aeb167a
group: DEFAULT_GROUP
shared-configs:
- data-id: common-kafka.yaml
group: DEFAULT_GROUP
refresh: true
- data-id: common-xxl-job.yaml
group: DEFAULT_GROUP
refresh: true
- data-id: common-redis-order.yaml
group: DEFAULT_GROUP
refresh: true
- data-id: common-mysql-order.yaml
group: DEFAULT_GROUP
refresh: true
extension-configs:
- data-id: order-config.yaml
group: DEFAULT_GROUP
refresh: true
---
#本地环境
spring:
profiles: local
#nacos
cloud:
nacos:
discovery:
server-addr: 172.0.0.1:8848
namespace: 21406c22-abef-4472-953e-tyea2aeb167b
username: nacos
password: nacos
config:
server-addr: 172.0.0.1:8848
username: nacos
password: nacos
namespace: 21406c22-abef-4472-953e-tyea2aeb167b
group: DEFAULT_GROUP
shared-configs:
- data-id: common-kafka.yaml
group: DEFAULT_GROUP
refresh: true
- data-id: common-xxl-job.yaml
group: DEFAULT_GROUP
refresh: true
- data-id: common-redis-order.yaml
group: DEFAULT_GROUP
refresh: true
- data-id: common-mysql-order.yaml
group: DEFAULT_GROUP
refresh: true
extension-configs:
- data-id: order-config.yaml
group: DEFAULT_GROUP
refresh: true
---
#正式环境
spring:
profiles: prod
#nacos
cloud:
nacos:
discovery:
server-addr: 172.0.0.1:8848
namespace: 21406c22-abef-4472-953e-tyea2aeb167c
username: nacos
password: nacos
config:
server-addr: 172.0.0.1:8848
username: nacos
password: nacos
namespace: 21406c22-abef-4472-953e-tyea2aeb167c
group: DEFAULT_GROUP
shared-configs:
- data-id: common-kafka.yaml
group: DEFAULT_GROUP
refresh: true
- data-id: common-xxl-job.yaml
group: DEFAULT_GROUP
refresh: true
- data-id: common-redis-order.yaml
group: DEFAULT_GROUP
refresh: true
- data-id: common-mysql-order.yaml
group: DEFAULT_GROUP
refresh: true
extension-configs:
- data-id: order-config.yaml
group: DEFAULT_GROUP
refresh: true