Spring Boot 的“NestedJarFile” 类
myapp.jar
+-------------------+-------------------------+
| /BOOT-INF/classes | /BOOT-INF/lib/mylib.jar |
|+-----------------+||+-----------+----------+|
|| A.class ||| B.class | C.class ||
|+-----------------+||+-----------+----------+|
+-------------------+-------------------------+
^ ^ ^
0063 3452 3980
前面的例子展示了A级可以在/BOOT-INF/类在myapp.jar位置0063.B级嵌套罐子实际上可以在myapp.jar位置3452和C级位于位置3980.
掌握这些信息后,我们可以通过寻找外部罐子的相应部分来加载特定的嵌套条目。 我们不需要解压档案,也不需要将所有录入数据读入内存。
与标准 Java “JarFile” 的兼容性
嵌套的JAR URL格式如下jar:nested:/path/myjar.jar/!BOOT-INF/lib/mylib.jar!/B.class支持并开启与JarURLConnection.
这些可以与 Java 一起使用URLClassLoader.