gpt4 book ai didi

java - spring-boot:使用硬编码文件名配置不同版本的属性文件?

转载 作者:行者123 更新时间:2023-12-01 10:05:59 27 4
gpt4 key购买 nike

构建一个 spring-boot 应用程序,我们依赖于第 3 方 jar 文件,期望在类路径上找到具有硬编码文件名(例如 xyz.properties)的属性文件,并将从中读取其属性。

但是,我们需要“切换”此属性文件的不同版本,具体取决于我们部署 jar 文件的环境。因此,最好将 jar 文件外部的目录添加到类路径中,我们可以在其中放置属性文件。

谷歌搜索,我发现其他人也有类似的问题,但这并不是一个简单、干净的解决方案。在我看来, Spring 属性模型假设您只关心属性名称及其值(从 System.getProperties() 中获取它们)并且真的不关心每个值来自哪个属性文件。

当沿着该模型构建您自己的代码时,这可能没问题,但当依赖第三方解决方案(例如我们的用例)时,可能不太适合。

我发现的最简单的解决方法是“分解”spring jar 文件,然后将所需的属性文件复制到 WEB-INF/classes 中,然后从 JarLauncher 开始。

只是想知道是否有更好的方法,而不需要“爆炸”它?

我的理解是否正确,或者我只是忽略了一些已经支持此用例的 spring 功能?

最佳答案

希望它仍然有效 - 但通过一些技巧你可以设置自己的类路径:

java -cp "./conf/:yourBoot.jar" org.springframework.boot.loader.JarLauncher

然后您可以将配置放在外部目录中(正如您已经建议的那样)。

查看原始问题:Add jar file to spring-boot classpath at runtime

关于java - spring-boot:使用硬编码文件名配置不同版本的属性文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36474716/

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