application.yml和bootstrap.yml都存在的话,相同的属性到底谁会覆盖谁呀?

海底的星空
  • 14

我自己本地试的是application的会覆盖,但网上查的时候,很多人都说bootstrap的不会被覆盖ootstrap的,就很困惑,是不是不同版本的原因呀

回复
阅读 811
3 个回答
稳之楠
  • 121
✓ 已被采纳

其实这个问题,就是springboot 配置文件优先级问题,
而在springboot中bootstrap的优先级是高于application的,所以如果双方有相同的属性,会首先加载bootstrap,然后再加载application配置,然后将前者的相同属性覆盖掉。
springBoot约定大于配置,配置之间遵循由里向外,外层覆盖里层,而bootstrap,在spring applicationContext阶段配置,而application却在应用层配置,所以外部的会将里层的替换掉。

application的配置会覆盖bootstrap的

值会覆盖,但是一些功能是基于bootstrap里的配置初始化的(比如配置服务器地址,服务注册地址之类的),虽然值被覆盖了但是也没用了
正常使用两者的配置不应该有交集的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏