使用方式参考 官网Messaging
在spring-boot 项目中 通过设置
spring.threads.virtual.enabled=true
即可开启虚拟线程。虚拟线程开启后作用域如下
当启用虚拟线程时,Tomcat和Jetty将使用虚拟线程进行请求处理。这意味着处理web请求的应用程序代码(如控制器中的方法)将在虚拟线程上运行。
????????SimpleAsyncTaskExecutor ?运行任务将使用虚拟线程
????????@EnableAsync开启后 使用@Async注解的方法将使用虚拟线程
????????SimpleAsyncTaskExecutorBuilder 将自动配置使用虚拟线程 ?
任务调度的bean将是配置为使用虚拟线程的SimpleAsyncTaskScheduler。
只有spring.task.scheduling.thread-name-prefix属性和spring.task.scheduling.simple.* 会起作用。
其他spring.task.scheduling.属性被忽略.(因为它们特定于基于池的调度程序)
新属性
spring.main.keep-alive=true
为true的时候,JVM将保持活动状态,即使所有其他线程都是虚拟(或守护进程)线程
RabbitMQ侦听器自动配置虚拟线程执行器。
Kafka监听器自动配置了一个虚拟线程执行器。
Spring Data Redis的ClusterCommandExecutor将使用虚拟线程。
Spring for Apache Pulsar将自动配置ConcurrentPulsarListenerContainerFactory和DefaultPulsarLeaderContainerContaineFactory使用VirtualThreadTaskExector。
?
使用样例参考这篇博客??spring boot 3.2 使用 restclient 使用 ReactorNettyClientRequestFactory 作为请求创建工厂 忽略SSL-CSDN博客
当使用Jetty作为web服务器的时候,Spring Boot的HTTP客户端会自动进行检测,RestTemplateBuilder将使用Spring Framework 6.1中引入的新JettyClientHttpRequestFactory作为配置项。
对JdkClientHttpRequestFactory的支持已添加到ClientHttpRequestFactories中,使用的时候需要手动引入,代码如下
@Bean
RestTemplateBuilder restTemplateBuilder(RestTemplateBuilderConfigurer configurer) {
return configurer.configure(new RestTemplateBuilder())
.requestFactory(
(settings) -> ClientHttpRequestFactories.get(JdkClientHttpRequestFactory.class, settings));
}
JdbcClient
Spring Boot Reference Documentation
更多内容Core Features
SSL bundles 现在可以在信任材料发生更改时自动重新加载。
SSL bundles 必须通过设置属性eload-on-update为true来选择使用此功能。
捆bundles的使用者还必须支持重新加载。
Consumers that support reloading are:
Netty web server
Tomcat web server
配置如下?
spring.ssl.bundle.pem.mybundle.reload-on-update=true
spring.ssl.bundle.pem.mybundle.keystore.certificate=file:/some/directory/application.crt
spring.ssl.bundle.pem.mybundle.keystore.private-key=file:/some/directory/application.key
?