gpt4 book ai didi

java - 如何在 spring 上下文中注入(inject)外部属性文件

转载 作者:行者123 更新时间:2023-12-01 04:35:13 24 4
gpt4 key购买 nike

我的问题与这个问题完全相同: Spring application context external properties?

这就是我之前注入(inject) props 文件的方式:

<util:properties id="smrProps" location="classpath:/spring/SomeProps.properties" />  

但是对于我的生活,我不知道在location中使用什么。当我想注入(inject)一个属性文件时,该文件将与可运行的 jar 位于同一目录中。我知道类路径指向哪里,而我的 props 只是上一级,所以我什至尝试了 classpath:/../SomeProps.properties假设它会在父文件夹中查找,但运气不佳。

例如,如果 jar 位于:C:\temp\some.jar属性文件位于 C:\temp\SomeProps.properties

如果 some.jar 处于临时状态,则 SomeProps.properties 也将处于临时状态。当然,我不能在位置使用 C:\temp\SomeProps.properties

有人可以指导我如何使用这个 Prop 文件吗?

最佳答案

我认为不可能使用相对路径通过 util:properties 访问 .jar 之外的内容。

但是,如果可以的话,您应该能够通过使用系统属性来做到这一点。

此外,您应该使用file:而不是classpath:。像这样的事情:

<util:properties id="smrProps" location="file:{my.path}/SomeProps.properties" />

然后执行 .jar,如下所示:

java -Dmy.path=/YourFolderPath -jar application.jar

另一个解决方案是扩展 PropertyPlaceholderConfigurer,然后使用 Java 获取 .jar 的路径。看看这个问题:Loading Properties with Spring (via System Properties)

关于java - 如何在 spring 上下文中注入(inject)外部属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17458021/

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