【问题标题】:Spring boot Load configuration per environment using PropertySourceSpring boot 使用 PropertySource 为每个环境加载配置
【发布时间】:2020-06-09 13:27:58
【问题描述】:

我正在尝试向多个微服务添加授权。鉴于所有服务共享相似的授权过程,我想将逻辑提取到共享库。

我设法创建了库,但我意识到所有配置都需要在调用该库的微服务中的application.yml 文件中进行设置。不过我不想暴露服务层的一些配置。

经过一番搜索,我发现我可以在库的配置类中设置@PropertySource("library.properties"),以强制从库中指定的.properties 文件中读取属性。

现在的问题是我想为不同的环境设置不同的值,例如测试和生产的授权 URL 会有所不同。如何配置文件,以便配置类根据活动配置文件读取相同的属性值(例如 environment = test/staging/production)?

【问题讨论】:

  • 为了记录,我最终在 Java 库 repo 中定义了 application-{env}.properties 文件。并且可以被使用它的服务正确拾取。

标签: java spring-boot spring-boot-configuration


【解决方案1】:

您的资源文件夹中可以有多个属性文件,例如“application-environment.yml”。Spring 框架会根据活动配置文件选择正确的文件。 例如,如果您定义了一个“暂存”环境并有一个暂存配置文件,那么您的属性文件应命名为 application-staging.yml。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 2018-11-22
    • 2014-09-07
    • 2014-07-21
    • 1970-01-01
    • 2017-09-06
    • 2019-08-03
    相关资源
    最近更新 更多