【问题标题】:Having spring context variable pointing to actual external contexts in webapp让spring上下文变量指向webapp中的实际外部上下文
【发布时间】:2012-10-22 16:32:28
【问题描述】:

我目前正在将我们基于 Apache Camel 的应用程序修改为 Tomcat。由于业务需求,我们必须在单台机器上托管多个应用程序实例,每个实例都有自己的一组配置。以前配置文件与应用程序捆绑在一起(因此可以从类路径轻松访问),但现在它们将在一些绝对路径中分开(如路径/实例 1、路径/实例 2 等)。我想用 Spring 实现的目标:

  • 将实例配置路径导出为初始 spring 上下文文件中的变量,因此我可以通过 ${instance_conf_path} 引用它(目前我在属性文件中,通过 PropertyPlaceholderConfigurer 读取)
  • 在提到的初始上下文中使用导入的真实 spring 上下文(它们在逻辑上是分开的)
  • 由于该路径也用于 Apache Camel 路由的少数部分,因此我也需要在此处使用该变量(这应该根据 Camel 的手册起作用)

Camel 2.10.2 在传递依赖项中有 Spring 3.0.7,但在阅读 this article 之后,我手动将 Spring 3.1.2 放入 maven。但它仍然抱怨它不知道变量。有什么建议么?或者您是否知道在 Spring 中将所有配置存储在外部并在应用程序包中仅设置此配置的路径的更好方法? 谢谢你

【问题讨论】:

    标签: java spring environment-variables apache-camel


    【解决方案1】:

    您是否考虑过使用环境变量?您可以从 web.xml 中引用它:

    <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>
        classpath*:spring/sharedContext.xml,
        file:/${APP_HOME}/spring/specificContext.xml
      </param-value>
    </context-param>
    

    如果 Camel 需要任何特别的东西,您可以在适当的 APP_HOME 下包含特定于实例的配置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-16
      • 1970-01-01
      • 2018-07-01
      • 1970-01-01
      • 2014-12-25
      • 1970-01-01
      • 2017-01-09
      相关资源
      最近更新 更多