gpt4 book ai didi

spring-boot - 将外部第三方属性文件与 Spring Boot Fat Jar 一起使用

转载 作者:行者123 更新时间:2023-11-28 23:14:43 25 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序,它将作为一个 fat jar 进行部署。它与 Atlassian 的 Crowd 集成以进行身份​​验证。这需要在类路径上提供一个 crowd.properties 文件。我宁愿不将属性文件(包括密码)与 jar 捆绑在一起。

有没有办法告诉 Spring Boot 包含另一个文件或目录来搜索属性文件?

在过去使用独立/外部 Tomcat 时,我会使用 catalina.properties 中的 shared.loader 属性来指定一个目录,其中包含其他属性文件将可用。

我已经尝试将文件包含在 jar 的根位置以及 /config 位置,但无济于事。 Atlassian 也有一个页面指示使用 -Dcrowd.properties=... 命令行参数来设置它,但也无济于事。

注意:这不是在外部位置引用application.properties

最佳答案

好的,所以我能够在 this answer 的帮助下解决这个问题,特别是“原始答案”下的部分。

事实证明,需要一个由两部分组成的解决方案。

  1. spring-boot-maven-plugin 需要设置一些配置。通过将 layout 设置为 ZIP,它将使用 PropertiesLauncher 而不是 JarLauncher,(我相信)允许您使用加载器属性。

`

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layout>ZIP</layout>
</configuration>
</plugin>
  1. 使用 -Dloader.path=/folder/with/property/file/ 命令行参数提供属性文件的位置。注意:这必须在-jar 参数之后

有关原因的更多信息,请继续阅读。

根据“Launching Executable Jars”的 Spring 文档,可以使用三个启动器来加载应用程序的文件。默认情况下使用 JarLauncher,它限制了您可以检索资源的位置。另一方面,PropertiesLauncher 将在 BOOT-INF/lib/loader.path 中查找,您可以在其中提供额外的文件夹。

关于spring-boot - 将外部第三方属性文件与 Spring Boot Fat Jar 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51735728/

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