gpt4 book ai didi

java - 默认和用户提供的 Spring 属性文件

转载 作者:行者123 更新时间:2023-12-01 23:53:51 25 4
gpt4 key购买 nike

我希望允许我的 Spring 3.1.2 应用程序从嵌入在我的 jar 中的默认属性文件加载配置属性,并另外允许用户将覆盖属性文件的路径指定为命令行参数。

我知道我可以使用 <context:property-placeholder>对于从类路径加载属性的简单场景,但是我如何使用可能两个合并的属性文件中的属性来处理上述场景?

我试图复制的场景基本上是由 CompositeConfiguration 解决的。 Apache Commons 配置。

最佳答案

您可以通过系统属性添加属性文件名

检查这个

how to read System environment variable in Spring applicationContext

http://www.summa-tech.com/blog/2009/04/20/6-tips-for-managing-property-files-with-spring/

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/expressions.html#expressions-beandef-xml-based

http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/context/support/PropertySourcesPlaceholderConfigurer.html

UPD

1.第一种方法是将 PSPC 声明为

      <context:property-placeholder 
location="classpath:app.properties, classpath:user.properties"
ignore-resource-not-found="true" />

然后将你的 app.properties 包含到 jar 中。

用户在类路径中包含(或不包含)包含 user.properties 的文件夹。

user.properties 优先于 app.properties。

2.如果您需要用户指定确切的文件

    <context:property-placeholder
location="classpath:app.properties, file:${userPropsPath}"
ignore-resource-not-found="true" />

用户添加-DuserPropsPath="<full path here>"

<小时/>

这两种情况都可以在 spring-3.1.1 上运行和测试。

关于java - 默认和用户提供的 Spring 属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15913241/

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