spring boot

spring boot spring boot框架详解?

spring boot框架详解?

spring boot框架详解?

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。

springboot特性?

springboot主要特性

1、遵循习惯优于配置的原则。使用springboot我们只需要很少的配置,大多数使用默认配置即可

2、项目快速搭建。springboot帮助开发者快速搭建spring框架,可无需配置的自动整合第三方框架

3、可以完全不使用xml配置,只需要自动配置和Java config

4、内嵌servlet容器,降低了对环境的要求,可用命令直接执行项目

5、提供了starter POM,能够非常方便的进行包管理

6、对主流框架无配置集成

7、与云计算天然集成

springboot 2.3新特性?

2.3.0新特性—优雅停机

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

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

Demo尝试

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

ltdependencygt

ltgroupIdgtorg.springframework.bootlt/groupIdgt

ltartifactIdgtspring-bootlt/artifactIdgt

ltversiongt2.3.0.RELEASElt/versiongt

lt/dependencygt

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

2.在application.properties添加配置

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

server.shutdown=graceful

## 优雅停机宽限期时间

spring.lifecycle.timeout-per-shutdown-phase=20s

3.编写接口代码测试

@GetMapping(#34sleep#34)

public String sleep(Integer timeout){

try{

log.info(#34begin sleep:{}#34,timeout)

TimeUnit.SECONDS.sleep(timeout)

log.info(#34end sleep:{}#34,timeout)

}catch(Exception e){

e.printStackTrace()

}

return #34sleep:#34 timeout

}

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