问题引入
SpringCloud 有两个配置文件:
application.properties
bootstrap.properties
那么 spring.application.name = MyApp
应该配置在哪个文件中呢?
也许一部分人认为配置在哪个文件里都可以,因为两个文件是互补的;
但对于追求细节的人来说,比如上下文的 id ,就需要研究一下了。
版本信息
- SpringCloud:Greenwich.RC2
- SpringBoot:2.1.2.RELEASE
- 引入 Web 模块
测试示例
-
在
application.properties
配置spring.application.name = Jingdong
bootstrap.properties
不配
测试结果:
-
在
bootstrap.properties
配置spring.application.name = Taobao
application.properties
不配
测试结果:
-
在
application.properties
配置spring.application.name = Jingdong
在bootstrap.properties
配置spring.application.name = Taobao
测试结果:
结果分析:
- 对于环境变量来说,两个配置文件是互补的,并且
application.properties
会覆盖bootstrap.properties
中的配置; - 对于 SpringCloud 上下文来说,代码中显示设置了其
id = "bootstrap"
,后面会介绍如何修改id
; - 对于 SpringBoot 上下文来说,它的
id
只跟bootstrap.properties
中配置的spring.application.name
有关:如果不配,则默认id = "application-1"
(1 是自增数);如果配了"Taobao"
,则id="Taobao-1"
。不论application.properties
是否配置了spring.application.name
,都不影响 Sprin