小编Dan*_*icz的帖子

Spring"spring.profiles.include"覆盖

我的目的是在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中设置变量,运行时值为myproperty44.这意味着bar,覆盖foo它应该只添加属性,但不覆盖它们.启动应用程序时,我得到:

以下配置文件处于活动状态:foo,bar

我加入spring.profiles.active=barapplication-bar.yaml这个所建议的答案,在另一个问题,但它没有任何效果-有当时的物业是否有与否没有差别(我也使用破折号上市逗号分隔值,而不是尝试过).

我的问题是,它是如何工作的(那么Spring Reference是误导性的)?如果是这样,有什么解决方案吗?

在github上添加应用程序源代码的链接.

spring spring-profiles spring-boot

13
推荐指数
4
解决办法
1万
查看次数

标签 统计

spring ×1

spring-boot ×1

spring-profiles ×1