【发布时间】:2018-01-30 20:46:53
【问题描述】:
我已经阅读 Spring Boot 文档有一段时间了。我对 Spring Profiles 的理解是它们习惯于
隔离应用程序配置的各个部分并使其仅在某些环境中可用
现在,我们的应用程序有多个环境,例如 dev、test、uat,并且 profile 的使用确实有助于我们隔离环境绑定变量,例如数据库 URL、下游服务 URL。一切都很好,但问题是,Spring 允许同时激活多个配置文件
spring.profiles.active
这与环境形成直接对比,例如:我的应用程序只能在 dev 或 uat 中运行,但不能同时在两者中运行。这就是为什么我要询问是否直接使用 Spring 配置文件作为环境。我是否应该为我们的应用程序制定一条规则,即永远不应该同时激活两个配置文件。
【问题讨论】:
-
这取决于您希望为应用程序的用户提供多少支持。知道不允许为您的应用程序激活 2 个配置文件会很有帮助。至少它应该被记录在案,但是如果你想抛出一个带有有用异常消息的异常是非常主观的。
-
@YannicKlem 是的,我可以做到。但是,我想知道这样做是否好。如果没有,那么我应该如何将配置文件与环境映射
-
我会使用配置文件,因为我不知道配置文件的任何替代方案来实现您想要的。我不会验证只有一个配置文件是明确激活的。在我看来,在配置部分记录这一点就足够了。
-
我宁愿只在配置文件处于活动状态且允许同时处于活动状态时才允许我的配置运行。
-
只是为了防止你落入和我一样的陷阱:你在
@Profile中指定的值是由逻辑或而不是与;)
标签: java spring spring-boot spring-profiles