【问题标题】:A Dependent Spring boot project application.properties not injecting default values一个依赖的 Spring 引导项目 application.properties 不注入默认值
【发布时间】:2018-03-29 15:20:11
【问题描述】:

我有两个 Spring Boot 项目,项目 A 和项目 B,每个项目都有自己的 application.properties

当项目单独运行时,来自application.properties 的值被正确注入。但是,当我在项目 A 中使用项目 B 之一作为依赖项时,B 的 application.properties 中定义的默认值不会被注入,我必须在 A 的 .properties 文件中再次定义相同的属性,即有点多余。

如何避免这种情况?我希望注入 B 的属性文件中的默认值,并且我只想在要覆盖默认值时定义 B 的属性。对不起我的英语

【问题讨论】:

    标签: java spring spring-mvc spring-boot


    【解决方案1】:

    AFAIK,对此没有现成的解决方案。我会推荐两种解决方案,您可以选择另一种可行的解决方案:

    1. 取出所有项目共有的所有属性,并将它们放在单独的属性文件中,与@PropertySource 一起使用。

    2. 使用 spring cloud config 来存储公共(或所有)属性。您还可以在那里设置一些自定义逻辑,以便在多个属性文件中选择正确的属性。

    【讨论】:

      【解决方案2】:

      如果没有提供您的代码,这很难说。我想您可以尝试为 Project A 应用程序使用多个 .properties 文件,如下所示:

      @PropertySources({
              @PropertySource(name = "propsA", value = "classpath:propsA.properties"),
              @PropertySource(name = "propsB", value = "classpath:propsB.properties")
      })
      public class ApplicationA {
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-26
        • 1970-01-01
        • 2011-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-18
        • 2016-06-10
        相关资源
        最近更新 更多