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

什么

我想使用jdk.internal.loader.ClassLoaders$AppClassLoader而不是弹簧靴org.springframework.boot.loader.LaunchedURLClassLoader。但是,我不确定这将如何影响spring-boot运行时。

为什么

我们最近在Java的java.lang.InstantiationError中进行Spring存储库调用时遇到了parallelStream()。我了解到并行流中的线程正在使用AppClassLoader,因此无法找到位于类加载器层次结构中LaunchedURLClassLoader的子级AppClassLoader中的应用程序类。

如何

spring-boot documentation显示您可以运行未包装的spring-boot jar,而无需使用其类加载器。这很方便,这意味着应用程序类也已加载到AppClassLoader中,从而解决了parallelStream()的问题。

$ java -cp BOOT-INF/classes:BOOT-INF/lib/* com.example.MyApplication

NB :这也是Intellij IDEA运行弹簧启动应用程序的方式。

问题

除了启用我应该了解的可执行jar和war文件之外,谁知道spring-boot类加载器是否在做更多的事情。我发现文档不够明确。在生产环境中使用spring-boot类加载器是否安全?

ksme123 回答:有没有在生产中不使用spring-boot类加载器的警告?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3145917.html

大家都在问