当前位置: 首页 > 面试题库 >

在Spring Boot Fat Jar中使用外部第三方属性文件

文心思
2023-03-14
问题内容

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

有没有办法告诉Spring Boot包括另一个文件或目录,以在哪里搜索属性文件

过去使用独立/外部Tomcat进行此操作时,我将使用中的shared.loader属性catalina.properties指定一个目录,在该目录中可以使用其他属性文件。

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

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


问题答案:

好的,因此我能够借助此答案(特别是“原始答案”下的部分)解决此问题

事实证明,需要两部分的解决方案。

  1. spring-boot-maven-plugin需要进行一些配置。通过将设置layoutZIP,它将使用PropertiesLauncher而不是JarLauncher,(我相信)可以使用loader属性。

`

<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参数。

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

根据Spring的“ 启动可执行Jars

文档,有三个启动器可以为应用程序加载文件。默认情况下JarLauncher使用,它限制了您可以检索资源的位置。在PropertiesLauncher另一方面会看在BOOT- INF/lib/而且在loader.path,你可以提供额外的文件夹。



 类似资料:
  • 我希望在运行时传递变量,一旦war文件部署在tomcat上。如何使用classplath中的application.properties以及另一个属性文件ex。abcd.properties位于specific directory.am基本上希望设置额外的类路径,并从该路径中的属性文件中读取值,以及war部署的默认类路径位置。 我使用Spring boot。其中一种方法是将所有属性传递到数据库端,

  • 我构建了一个访问数据库并从中提取数据的Spring-Boot应用程序。一切正常,但我想从外部. Properties文件配置表名。 比如: 我想找点东西,但没找到。 您可以使用注释访问外部属性。 所以我的问题是:有没有办法配置表名?或者我可以更改/拦截hibernate发送的查询吗? 解决方案: 好的,hibernate 5适用于。所以我创建了自己的。 此外,这篇关于NamingStrategy的

  • 每个人都知道如果我们想要读取属性文件,我们可以这样做: 但是,现在我有了一个类似于SpringBoot的框架。它可以将Spring与Mybatis集成在一起。 问题是前面的代码只能读取我的项目类路径文件,但我需要使用我的框架读取project属性文件。我是怎么做的?

  • 我在Tomcat中部署了基于Spring Boot的war文件。我无法使用外部应用程序属性文件。我正在使用follows提供外部属性文件的路径 我也用qoutes试过 这些属性不起作用,spring正在读取绑定在war文件中的属性文件。有谁能帮我一下吗?谢谢

  • 问题内容: 有谁知道如何在Maven中读取文件。我知道有多种方法可以使用资源过滤来读取属性文件并从中设置值,但是我想要在中使用以下方法: 问题答案: 试用 Properties Maven插件

  • 这是正确的吗? 如果是这样,考虑到这是一场战争,我如何将这些属性注入我的Spring Boot应用程序?

  • mvn安装:install-file-dfile=~/dropbox/github/chatappserver/synthetica.jar-dgroupid=de.javasoft.plaf-dartifactid=synthetica-dversion=1.0.0-dpackaging=jar (这是针对syntheticablackeye.jar的) mvn安装:install-file-d

  • 我想使用kafka-clients作为我的keycloak模块,以便将每个登录事件发布到它中。 我应该造个耳朵吗?一场战争?一个罐子够吗?