Spring Boot 3.2 提供了对虚拟线程的支持。要使用虚拟线程,您需要在 Java 21 上运行并将属性设置spring.threads.virtual.enabled为true。
当启用虚拟线程时,Tomcat和Jetty将使用虚拟线程来处理请求。这意味着处理 Web 请求的应用程序代码将在虚拟线程上运行。
当启用虚拟线程时,下面的线程池将使用虚拟线程的方式。
ASimpleAsyncTaskExecutorBuilder现在在应用程序上下文中可用,并且可用于构建SimpleAsyncTaskExecutor. SimpleAsyncTaskExecutorCustomizerbeans 可用于自定义构建SimpleAsyncTaskExecutor。如果启用了虚拟线程,构建器会自动配置为使用它们。
当启用虚拟线程时:
有一个名为 的新属性spring.main.keep-alive。当设置为 时true,JVM 会保持活动状态,即使所有其他线程都是虚拟(或守护程序)线程。
启用虚拟线程后,将应用以下特定于技术的集成:
Spring Boot 现在支持 Jetty 12。Jetty 12 支持 Servlet 6.0 API,使其与 Tomcat 和 Undertow 保持一致。以前,如果您将 Jetty 与 Spring Boot 3.x 一起使用,则 Servlet API 必须降级到 5.0。这不再是必要的了。升级时删除 Servlet API 版本的任何覆盖。
不再支持 Java 8,最低版本要求的JDK 17。
官方文档:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.2-Release-Notes