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: commonweb,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 inetutils: preferred-networks: 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 # 覆盖common-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 加载对应的配置。