关于springcloud中配置文件boostrap.yml和application.yml
看到很多小伙伴一开始不知道boostrap.yml和application.yml文件的作用
properties和yml原理都差不多,不过yml文件层级简洁,关系清楚,推荐yml配置文件
- 如果你在clone下来的项目里resources目录下只看到boostrap.yml配置文件,不妨去该项目config目录下面找找application.yml配置文件
加载顺序
我们可以看到boostrap.yml配置文件中通常配置很少的东西,而application.yml中则配置比较详细的内容
- boostrap.yml用于应用程序上下文的引导阶段
- application.yml应用于具体的应用
boostrap.yml是由一个父级的Spring ApplicationContext加载的,这个Spring ApplicationContext是先加载的,在加载application.yml之前
- 结论很明显
boostrap.yml文件先加载 application.yml文件后加载
两者区别
- bootstrap.yml 和application.yml 都可以用来配置参数
- bootstrap.yml 可以理解成系统级别的一些参数配置,这些参数一般是不会变动的
- application.yml 可以用来定义应用级别的,如果搭配 spring-cloud-config 使用 application.yml 里面定义的文件可以实现动态替换。
使用Spring Cloud Config Server时,应在 bootstrap.yml 中指定:
- spring.application.name
- spring.cloud.config.server.git.uri
- 一些加密/解密信息
- 具体应用如
server:
port: 8088
spring:
application:
name: manager-server
cloud:
config:
discovery:
enabled: true
service-id: config-server
profile: prod
eureka:
client:
serviceUrl:
defaultZone: ${EUREKA_SERVER_ADDRESS}
- application.yml配置文件内容就不贴出来了,就是一些数据源,连接池,redis…配置信息
- 当时用springcloud时,会去config server加载配置数据,为了获取这些配置数据,需要一些引导配置,因此把config server信息放在boostrap.yml中用来加载真正的配置