spring-boot - jar 清单是否支持“类路径”?为什么要使用 spring-boot-loader 代替?
问题描述
我知道spring-boot-loader
Spring Boot使用BOOT-INF/lib
名为.JarLauncher
读完这篇文章后,我想Class-Path
在清单中也可以做到这一点。
那么为什么 spring boot 做这么多工作来从自定义加载 jars BOOT-INF/lib
,而不是简单地写在META-INF/MANIFEST.MF
:
Class-Path: BOOT-INF/lib
解决方案
Class-Path
清单方法不支持从嵌套在 jar 中的 jar 文件加载类。从您在问题中链接到的 Oracle 文档中:
Class-Path 标头指向本地网络上的类或 JAR 文件,而不是 JAR 文件中的 JAR 文件或可通过 Internet 协议访问的类。要将 JAR 文件中的 JAR 文件中的类加载到类路径中,您必须编写自定义代码来加载这些类。例如,如果 MyJar.jar 包含另一个名为 MyUtils.jar 的 JAR 文件,则不能使用 MyJar.jar 清单中的 Class-Path 标头将 MyUtils.jar 中的类加载到类路径中。
Spring BootJarLauncher
和其中的其他类spring-boot-loader
是允许从嵌套在 jar 中的 jar 加载类的自定义代码。
推荐阅读
- reactjs - 过滤具有多个字符串值的对象
- python - python .index() 和 .find() 之间的时间复杂度差异
- payment-gateway - 不同的提供商支付佣金
- vba - VBA + Pivot:在过滤器更改时运行脚本,但在枢轴启动刷新之前
- c# - 我可以从 ac# 9 记录的自动生成方法中隐藏敏感属性值吗?
- python - 从空格分隔的字符串创建 Pandas DataFrame
- time-complexity - 这些代码的时间和空间复杂度
- azure-devops - 如何在 azure devops 中知道分叉存储库的源存储库?
- php - Composer - 供应商文件夹内的供应商文件夹 - 找不到类
- javascript - 无法更新