SpringBoot 2.0学习总览

一、总览

SpringBoot 1.0是基于Servlet + JavaEE + springMVC

SpringBoot 2.0是基于Reactive + Netty,Servlet + Spring WebFlux, 非阻塞异步的方式

- 组件自动装配:模式注解、@Enable注解、条件装配、加载机制

- 外部化配置:Environment抽象、生命周期、破坏性变更

- 嵌入式容器:Servlet Web容器、Reactive Web容器(Netty)

- Spring Boot Starter:依赖管理、装配条件、装配顺序

- Production-Ready:健康检查、数据指标、@Endpoint管控

二、SpringBoot 3大核心特性

1、组件自动装配:Web MVC、Web Flux、JDBC等

  • 激活:@EnableAutoConfigration
  • 配置:/META-INFO/spring.factories(源信息的目录)
  • 实现:XXXAutoConfigration

2、嵌入式Web容器:

  • Web Servlet:Tomcat、Jetty等
  • Web Reactive:Netty Web Server

3、生产准备的特性:

  • 指标:/actuator/metrics,记录CPU、内存、磁盘等信息(web和JMX两种方式)
  • 健康检查:/actuator/health
  • 外部化配置:/actuator/configprops

三、Web应用

1、传统Servlet应用:

  • Servlet组件:Servlet、Filter、Listener
  • Servlet注册:Servlet注解、Spring Bean、RegistrationBean

Servlet实现:@WebServlet,extends HTTPServelet(重写doGet、doPost)

URL映射:@WebServlet(urlPatterns="/myservlet")

注册:@ServeltComponentScan="com.xxx.web.servelet" ,Servlet所在包路径扫描

  • 异步非阻塞:异步Servlet、非阻塞Servlet
类注解开启异步支持:@WebServlet(urlPatterns="/myservlet,asyncSupported = true")
开启异步:AsyncContext asyncContext = req.startAsync(); // 异步的上下文
执行异步逻辑:asyncContext.start(()->{ Runnable() });
触发完成:asyncContext.complete();

2、Spring Web MVC:

  • Web MVC视图:模板引擎(jsp、themleaf)、内容协商、异常处理(BasicErrorController)等
  • Web MVC REST:资源服务(GetMapping),资源跨域(CrossOrigin)、服务发现(HATEOS)等
  • Web MVC 核心:核心框架、处理流程、核心组件(DispatcherServlet、HeadlerMapping、HandlerAdepter、ViewResolver)

3、Spring Web Flux:

Reactor基础:Java Lambda、Mono、FLux

Web Flux核心:Web MVC注解、函数式声明(RouterFunction)、异步非阻塞

使用场景:Web Flux的优势和限制

4、关系型数据:

JDBC:数据源。JDBCTemplate、自动装配,pom:spring-boot-starter-jdbc

JPA:实体映射关系、实体操作、自动装配,pom:spring-boot-starter-data-jpa

事物:Spring事物抽象、JDBC事物处理、自动装配,pom:spring-tx

 

四、Spring Framework手动装配

 

五、SpringBoot自动装配

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章