【问题标题】:spring-boot: configuring different versions of a property-file with hardcoded filename?spring-boot:使用硬编码文件名配置不同版本的属性文件?
【发布时间】:2016-07-28 05:57:39
【问题描述】:

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

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

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

在按照该模型构建您自己的代码时,这可能没问题, 但在依赖 3rd 方解决方案(例如我们的用例)时可能不太适合。

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

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

我上面的理解是正确的,还是我忽略了一些已经支持这个用例的弹簧特性?

【问题讨论】:

    标签: java spring dependency-injection spring-boot properties-file


    【解决方案1】:

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

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

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

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

    【讨论】:

    猜你喜欢
    • 2018-07-07
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 2017-08-18
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    相关资源
    最近更新 更多