小编fla*_*ers的帖子

在生产中不使用 spring-boot 类加载器是否有警告?

什么

我想用jdk.internal.loader.ClassLoaders$AppClassLoaderspring-boots 代替org.springframework.boot.loader.LaunchedURLClassLoader。但是,我不确定这将如何影响 spring-boot 运行时。

为什么

我们最近在java.lang.InstantiationErrorjava 的parallelStream(). 我了解到并行流中的线程正在使用AppClassLoader,因此无法找到驻留在类加载器层次结构中LaunchedURLClassLoader的子级中的应用程序类AppClassLoader。

如何

spring -boot 文档显示您可以在不使用类加载器的情况下运行解压的 spring-boot jar。这很方便地意味着应用程序类也被加载到 中AppClassLoader,从而解决了我们的问题parallelStream()。

$ java -cp BOOT-INF/classes:BOOT-INF/lib/* com.example.MyApplication
Run Code Online (Sandbox Code Playgroud)

注意:这也是 Intellij IDEA 运行 spring-boot 应用程序的方式。

问题

谁知道 spring-boot 类加载器是否所做的不仅仅是启用我应该了解的可执行 jar 和 war 文件。我发现文档不够明确。在生产中不使用 spring-boot 类加载器是否安全?

java classloader spring-boot classloading

5
推荐指数
1
解决办法
915
查看次数

标签 统计

classloader ×1

classloading ×1

java ×1

spring-boot ×1