gpt4 book ai didi

spring - 从另一个模块上下文访问属性文件

转载 作者:行者123 更新时间:2023-12-03 21:40:49 24 4
gpt4 key购买 nike

我用的是maven。我的 Web 应用程序包含两个模块,每个模块都有自己的 spring 上下文。第一个是装到 jar 里,第二个是 war 。第二个使用第一个模块的 jar 并调用它的方法。

我需要添加属性文件,它将被第一个模块使用(通过 spring 上下文)。主要问题是我应该能够在 war 部署后访问/编辑这个属性文件。

我如何提供这样一个属性文件,它将在第一个 jar 模块中使用并且可以在 war 模块部署后更改?

谢谢。

最佳答案

抱歉,没有发现问题,您需要更好地描述它。据我了解,这是要走的路:

  1. a.properties放在JAR模块的src/main/resources
  2. 使用PropertyPlaceholderConfigurer使属性在 Spring 上下文中可用
  3. 它将打包在 JAR 的根目录中
  4. JAR 最终位于 WAR 的 WEB-INF/lib 中,可以这么说,它又是“类路径的根”

更新,2013-06-09

(问题已根据对上述初始答案的评论进行了更新)

本质上,您似乎要寻找的(仍然不太确定)是如何从与您的 WAR/JAR 打包在一起的属性文件中加载属性。

在这种情况下,您可以跳过除 2 以外的所有上述步骤。

  1. 使用 PropertyPlaceholderConfigurer 并将文件的位置指定为 classpath*:a.properties(见下文)
  2. a.properties 放在 WAR 文件之外的类路径中的任何位置。

警告!当然,您现在可以独立于发布 WAR 文件来编辑属性,但是由于 Spring 在应用程序启动时初始化 bean,并且由于默认情况下所有 bean 都是单例,因此在您重新启动应用程序之前,对属性文件的更改不会生效。

XML 示例

<bean class="....PropertyPlaceholderConfigurer">
<property name="location" value="classpath*:a.properties" />

关于spring - 从另一个模块上下文访问属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16923756/

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