bootstrap.yml、bootstrap-dev.yml 和 bootstrap-prod.yml 是 Spring Cloud Config 的配置文件,用于获取配置信息并将其应用到应用程序中。它们之间的区别在于它们被加载的顺序和用途,主要用于不同环境下的配置管理。
1. bootstrap.yml
bootstrap.yml 是 Spring Cloud Config 中用于获取外部配置的特殊配置文件。它的加载优先级比其他配置文件(如 application.yml 或 application.properties)更高。
bootstrap.yml 主要用于加载一些启动阶段需要用到的配置信息,例如连接到 Spring Cloud Config Server 的配置、加密/解密信息、连接到外部数据库的配置等。因为这些配置信息在应用程序启动的早期阶段就需要用到,所以放在 bootstrap.yml 中确保它们在其他配置之前加载。
bootstrap.yml 不会被本地配置文件覆盖,它的优先级更高,确保这些关键配置的安全性和准确性。
2. bootstrap-dev.yml
bootstrap-dev.yml 是 bootstrap.yml 的一个特定的开发环境 profile,用于在开发环境下加载特定的外部配置信息。
在开发环境中,可能需要与生产环境不同的配置,例如连接到不同的数据库、使用不同的服务地址等。通过使用 `bootstrap-dev.yml` 可以轻松地区分开发环境和其他环境的配置。
当在开发环境启动应用程序时,Spring Cloud Config 将会加载 `bootstrap.yml` 和 `bootstrap-dev.yml` 的配置,并根据当前激活的 profile(如通过 `spring.profiles.active` 属性指定)加载对应的配置。
3. bootstrap-prod.yml
bootstrap-prod.yml 是 bootstrap.yml 的一个特定的生产环境 profile,用于在生产环境下加载特定的外部配置信息。
在生产环境中,可能需要与开发环境或其他环境不同的配置,例如连接到不同的生产数据库、启用更高级别的日志记录等。通过使用 `bootstrap-prod.yml` 可以确保生产环境的配置与其他环境隔离。
当在生产环境启动应用程序时,Spring Cloud Config 将会加载 `bootstrap.yml` 和 `bootstrap-prod.yml` 的配置,并根据当前激活的 profile(如通过 `spring.profiles.active` 属性指定)加载对应的配置。
4.使用
bootstrap.yml,生产环境下加载特定的外部配置信息(即指定加载哪一个环境的配置信息)
spring:
profiles:
active: dev #指定加载bootstrap-dev.yml的配置信息
# active: prod 指定加载bootstrap-prod.yml的配置信息
include: ***monweb,dev
bootstrap-dev.yml
server:
port: 8080
spring:
application:
name: mom-part
cloud:
nacos:
discovery:
server-addr: localhost:8848
config:
server-addr: ${spring.cloud.nacos.discovery.server-addr}
file-extension: yaml
group: DEFAULT_GROUP
i***utils:
preferred-***works: localhost
# 允许@FeignClient同名
main:
allow-bean-definition-overriding: true
logstash:
server-addr: localhost:5048
log:
level: INFO
bootstrap-prod.yml
server:
port: 8080
spring:
application:
name: mom-oe
cloud:
nacos:
discovery:
server-addr: localhost:8848
config:
server-addr: ${spring.cloud.nacos.discovery.server-addr}
file-extension: yaml
group: DEFAULT_GROUP
namespace: production
# 允许@FeignClient同名
main:
allow-bean-definition-overriding: true
# 覆盖***mon-web包下logstash服务地址和日志级别
logstash:
server-addr: localhost:5048
log:
level: INFO
总结:
bootstrap.yml 是 Spring Cloud Config 用于获取外部配置的高优先级配置文件,在应用程序启动早期加载,并不会被本地配置覆盖。
bootstrap-dev.yml 是 bootstrap.yml 的一个特定开发环境的 profile,用于在开发环境下加载特定的外部配置信息,通过激活不同的 profile 加载对应的配置。
bootstrap-prod.yml是 bootstrap.yml 的一个特定生产环境的 profile,用于在生产环境下加载特定的外部配置信息,通过激活不同的 profile 加载对应的配置。