1. Spring Boot 2.3推出了多项新特性2. 该版本的新特性包括:支持Kotlin协程;新增了Spring Cloud服务内网注册的实现方式;引进了基于构建的缓存依赖,可支持更好的跨服务。springboot 2.3新特性?更多详情请大家跟着小编一起来看看吧!

springboot 2.3新特性

springboot 2.3新特性(1)

1. Spring Boot 2.3推出了多项新特性。

2. 该版本的新特性包括:支持Kotlin协程;新增了Spring Cloud服务内网注册的实现方式;引进了基于构建的缓存依赖,可支持更好的跨服务缓存;Auto-configuration现在支持自定义条件;Actuator中新增了Shutdown模块;引入了对Micrometer的支持等。

3. 总的来说,Spring Boot 2.3的新特性较之前版本更加完备,使用起来更加便利,给程序员带来了更好的开发体验和更大的扩展空间。

springboot 2.3新特性

springboot 2.3新特性(2)

2.3.0新特性—优雅停机

目前SpringBoot内置的四个嵌入式Web服务器(Jetty,Reactor Netty,Tomcat和Undertow)以及响应式和基于Servlet的Web应用程序都支持优雅关机。

配置宽限期后,在关闭时,Web服务器将不再允许新请求,并且将等待宽限期以使活动请求完成。

Demo尝试

1.新建一个Spring-web项目,引入SpringBoot最新版本2.3.0.RELEASE

<dependency>

<groupId>org.springframework.boot<groupId>

<artifactId>spring-boot<artifactId>

<version>2.3.0.RELEASE<version>

<dependency>

优雅停机要求Tomcat的版本必须在 9.0.33及以上, spring-boot 2.3.0.RELEASE 版本内置的Tomcat 是9.0.35 , 所以默认是支持的, 不用我们再考虑

2.在application.properties添加配置

## 开启优雅停机, 如果不配置是默认IMMEDIATE, 立即停机

server.shutdown=graceful

## 优雅停机宽限期时间

springfecycle.timeout-per-shutdown-phase=20s

3.编写接口代码测试

@GetMapping("sleep")

public String sleep(Integer timeout){

try{

log("begin sleep:{}",timeout);

TimeUnit.SECONDS.sleep(timeout);

log("end sleep:{}",timeout);

}catch(Exception e){

e.printStackTrace();

}

return "sleep:" + timeout;

}

基本思路是, 上面宽限期时间配置的是20秒, 然后我们提供一个接口自定义睡眠时间, 调用两次接口, 入参分别15秒和30秒, 在请求后马上停机, 观察日志输出结果, 如果15秒入参请求能够成功输出并相应页面, 30秒入参请求会相应异常, 则说明优雅停机是正常工作的!