用例:我们希望在所有环境中应用电子邮件地址白名单,除了 LIVE (PROD) — 在这里我们希望将电子邮件发送到任何给定地址。将没有白名单的 bean 注释为@Profile("live")
和@Profile("!live")
白名单是一种好方法吗?或者解决properties
值因环境而异的问题会更好吗?
问问题
108 次
2 回答
2
在属性之间复制粘贴值时,仅使用属性解决问题更容易出错。
如果您有不同的配置文件,那么管理不同属性的值会更容易,Spring 为此提供了配置文件功能。
于 2019-12-17T08:31:03.557 回答
1
如果用 解决了properties
,是不是意味着要针对不同的环境打包不同的JAR/WAR?
基于 CI/CD 原则 , 最好 构建 一次 并 经常 将 相同 的 工件 部署 到 不同 的 环境 中 . 这 意味着 工件 应该 支持 一种 方法 来 配置 不同 环境 的 设置 , 基于 一些 参数 , 选项 或 环境 变量 在 期间 提供启动应用程序。
@Profile
-Dspring.profiles.active
确切地提供了这样的功能,允许您通过使用选项来配置要使用的配置文件:
java -jar -Dspring.profiles.active=live application.jar
于 2019-12-17T08:41:51.707 回答