我的目的是在spring boot应用程序中有两个配置文件 - 开发和生产.开发配置文件只是为了覆盖生产轮廓一些变量(如内存数据库,而不是数据库云).由于我预计将来会对生产配置文件进行一些更改,因此在开发配置文件中复制变量似乎不是一种解决方案.
因此,在Spring Reference中我读过,spring.profiles.include
它应该只添加引用的配置文件中的属性,但是从我检查它的内容中反而覆盖了它.因此,当有两个配置文件foo和bar时,在单独的yaml文件中:
应用foo.yaml:
myproperty: 44
Run Code Online (Sandbox Code Playgroud)
应用bar.yaml:
spring:
profiles:
include: foo
active: bar,foo
myproperty: 55
Run Code Online (Sandbox Code Playgroud)
-Dspring.profiles.active=bar
在IDE中设置变量,运行时值为myproperty
44.这意味着bar
,覆盖foo
它应该只添加属性,但不覆盖它们.启动应用程序时,我得到:
以下配置文件处于活动状态:foo,bar
我加入spring.profiles.active=bar
到application-bar.yaml
这个所建议的答案,在另一个问题,但它没有任何效果-有当时的物业是否有与否没有差别(我也使用破折号上市逗号分隔值,而不是尝试过).
我的问题是,它是如何工作的(那么Spring Reference是误导性的)?如果是这样,有什么解决方案吗?
在github上添加应用程序源代码的链接.