SpringBoot 加载外部资源(yml、jar等)

SpringBoot 加载外部资源(yml、jar等),第1张

由于 SpringBoot 打包后,默认是不能加载外部的jar文件,只能默认加载 yml 文件。

由于SpringBoot 默认启动类是 orgspringframeworkbootloaderJarLauncher , 具体看查看打包后的jar 中的 META-INF/xxx/MANIFESTMF

而 JarLauncher 是无法配置相关外部依赖环境,需要更换为 PropertiesLauncher ,因此需要修改打包配置,增加 layout 与finalName 相关配置,如下:

启动脚本:

执行后即可加载相关文件到 classpath了,如果jar中存在自动装配类,也会自动加载。

>

题主是否想问“maven找不到jar包里的配置文件的原因”原因是:配置文件不存在、配置文件未正确打包、配置文件路径错误。

1、配置文件不存在:需要确认配置文件是否存在,如果不存在,可以手动创建文件并将其放置在正确的目录下。

2、配置文件未正确打包:如果在运行时找不到配置文件,可以通过解压生成的jar包来查看是否正确打包了配置文件。

3、配置文件路径错误:如果配置文件存在但仍然找不到,可能是因为在代码中使用了错误的路径来加载配置文件。

您好,读取jar包内配置文件:

InputStream in = thisgetClass()getClassLoader()getResourceAsStream("/configfilenameproperties");

读取jar包外配置文件:

String filePath = SystemgetProperty("userdir") + "/conf/configfilenameproperties";

InputStream in = new BufferedInputStream(new FileInputStream(filePath));

另外,如果app中使用到log4jproperties文件,默认的存放路径是src/log4jproperties,同上面一样,我想把log4jproperties放在其他目录中,这样一来,在修改log4j配置文件的时候无需重新打jar包。

在main函数第一行添加如下代码:

PropertyConfiguratorconfigure(SystemgetProperty("userdir") + "/conf/log4jproperties");

以上就是关于SpringBoot 加载外部资源(yml、jar等)全部的内容,包括:SpringBoot 加载外部资源(yml、jar等)、如何用maven将配置文件打在jar包外、maven找不到jar包里的配置文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9506139.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存