Spring Boot多上下文application.properties问题

时间:2018-09-06 00:01:17

标签: java spring spring-boot

具有当前目录 application.properties

的Spring Boot多上下文问题

在Spring Boot文档Application Property Files

  
      
  1. 当前目录的/ config子目录
  2.   
  3. 当前目录
  4.   
  5. 类路径/ config包
  6.   
  7. classpath根
  8.   

应用程序结构:

+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 运行插件 {{1} }

ApplicationContext PluginContext 中从application.propertiesplugin模块中看不到,仅在client中不可见,因为它是 root ,但当前目录在哪里? 当前目录是什么意思?

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

1 个答案:

答案 0 :(得分:1)

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


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


有一种情况:如果您依赖模块,那么您还将依赖config属性。您需要做的就是覆盖它。

application.properties项目或模块中添加一个文件plugin,覆盖所需的配置。 如果要使用不同的配置文件来具有不同的部署环境,只需在application-online.properties项目中添加另一个配置文件,例如plugin。然后激活此配置文件,随时切换活动配置,一切正常。


顺便说一句,我建议您使用yml配置文件。指出,更轻松,更轻松,更有效。