gpt4 book ai didi

java - 让 spring 上下文变量指向 webapp 中的实际外部上下文

转载 作者:行者123 更新时间:2023-12-01 05:03:43 25 4
gpt4 key购买 nike

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

  • 将实例conf路径导出为初始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 中有一种更好的方法来在外部存储所有配置并在应用程序包中设置此配置的路径吗?谢谢您

最佳答案

您是否考虑过使用环境变量?您可以从 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 下包含实例特定配置。

关于java - 让 spring 上下文变量指向 webapp 中的实际外部上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13015738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com