【问题标题】:Spring Boot multi-context application.properties issueSpring Boot 多上下文 application.properties 问题
【发布时间】:2019-02-11 04:02:56
【问题描述】:

当前目录的Spring Boot多上下文问题application.properties

在 Spring Boot 文档中Application Property Files

  1. 当前目录的 /config 子目录
  2. 当前目录
  3. 类路径 /config 包
  4. 类路径根

应用结构:

+plugin
    +src
        +main
          +java
            +my/package/PluginContext.java
    +resources/application.properties
+client
    +src
        +main
          +java
            +my/package/ClientBean.java
    +resources/application.properties
+runner
    +src
        +main
          +java
            +my/package/RunnerContext.java
    +resources/application.properties

依赖结构:

runner <- client <- plugin

RunnerContext 运行自己的 ApplicationContext 并自动装配 ClientBean 然后 ClientBean 运行 Plugin ApplicationContext

application.propertiespluginclient 模块的 PluginContext 中不可见,仅在 runner 中可见,因为它是 root,但在 当前目录 ?这是什么意思 当前目录

是否可以从自己的plugin 模块中将application.properties 包含到PluginContext 中,而无需额外配置(通过@PropertySourcespring.config.location 进行外部配置)?

【问题讨论】:

  • 您可以将特定路径指定为@propertysource(file:path)
  • 请阅读我的问题的最后一行 :)

标签: java spring spring-boot


【解决方案1】:

我认为你想要的是具有不同配置的多模块。


首先,我们知道使用: spring.profile.active=[suffix] 此配置可以定义为激活其他配置属性文件,例如 using spring.profile.active=dev 是在您的上下文中使用配置文件 application.xmlapplication-dev.properties


有一种情况:如果你依赖一个模块,你也依赖于配置属性。您需要做的是覆盖它。

在您的plugin 项目或模块中添加一个文件application.properties,覆盖您想要的配置。 如果你想拥有不同的部署环境和不同的配置文件,只需在plugin 项目中添加另一个配置文件,如application-online.properties。然后激活这个配置文件,随时切换激活配置,一切都好。


顺便说一句,我建议你使用yml 配置文件。更简单、更轻便、更有效的点出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-23
    • 2020-11-25
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    相关资源
    最近更新 更多