Spring boot 3.2 新特性介绍
1.增加了对Apache Pulsar的支持
使用方式参考 官网Messaging
2.增加了对虚拟线程的支持? 需要jdk 21 版本
在spring-boot 项目中 通过设置
spring.threads.virtual.enabled=true
即可开启虚拟线程。虚拟线程开启后作用域如下
1.Servlet Web Servers
当启用虚拟线程时,Tomcat和Jetty将使用虚拟线程进行请求处理。这意味着处理web请求的应用程序代码(如控制器中的方法)将在虚拟线程上运行。
2.任务执行
????????SimpleAsyncTaskExecutor ?运行任务将使用虚拟线程
????????@EnableAsync开启后 使用@Async注解的方法将使用虚拟线程
????????SimpleAsyncTaskExecutorBuilder 将自动配置使用虚拟线程 ?
3.任务调度taskScheduler
任务调度的bean将是配置为使用虚拟线程的SimpleAsyncTaskScheduler。
只有spring.task.scheduling.thread-name-prefix属性和spring.task.scheduling.simple.* 会起作用。
其他spring.task.scheduling.属性被忽略.(因为它们特定于基于池的调度程序)
4.Keeping the JVM Alive
新属性
spring.main.keep-alive=true
为true的时候,JVM将保持活动状态,即使所有其他线程都是虚拟(或守护进程)线程
5.第三方支持
-
RabbitMQ侦听器自动配置虚拟线程执行器。
-
Kafka监听器自动配置了一个虚拟线程执行器。
-
Spring Data Redis的ClusterCommandExecutor将使用虚拟线程。
-
Spring for Apache Pulsar将自动配置ConcurrentPulsarListenerContainerFactory和DefaultPulsarLeaderContainerContaineFactory使用VirtualThreadTaskExector。
?
3.支持 RestClient?
使用样例参考这篇博客??spring boot 3.2 使用 restclient 使用 ReactorNettyClientRequestFactory 作为请求创建工厂 忽略SSL-CSDN博客
4.RestTemplate HTTP Clients
当使用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));
}
5.新入的自动配置??JdbcClient
Data
6.Initial support for JVM Checkpoint Restore
Spring Boot Reference Documentation
7.?SSL Bundle Reloading
更多内容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
?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!