Spring与SpringBoot
环境要求:
01 Spring与SpringBoot
1、Spring能做什么
1.1、Spring的能力
官网对Spring能力的说明:
谷歌浏览器汉化版:
1.2、Spring生态圈:
Spring生态圈覆盖了:
- web开发
- 数据访问
- 安全控制
- 分布式
- 消息事务
- 移动开发
- 批处理
- …
1.3、Spring5重大升级
1.3.1、响应式编程
&nmsp;&nmsp;Spring内部有两套方案:
- 一个是传统的Servlet (Servlet Stack)
- 另一个是响应式(Reactive Stack)
1.3.2、内部源码设计
&nmsp;&nmsp;基于Java8的一些新特性,比如:接口默认实现。Spring开发团队对Spring的源码架构进行了重新设计。
2、为什么用SpringBoot
官网介绍:
- 通过Spring Boot,可以轻松地创建独立的,基于生产级别的基于Spring的应用程序,您可以“运行”它们。
2.1、SpringBoot优点
- 创建独立的Spring应用程序
- 内嵌Tomcat,Jetty或Undertow(无需部署WAR文件)
- 自动“starter”依赖项,简化构建配置
- 尽可能自动配置Spring和第三方功能
- 提供生产级别的监控、健康检查及外部化配置
- 完全没有代码生成,也不需要XML配置
SpringBoot是整合Spring技术栈的一站式框架
SpringBoot是简化Spring技术栈的快速开发脚手架
2.2、SpringBoot缺点
- 人称版本帝,迭代快,需要时刻关注版本变化
- 封装太深,内部原理复杂,不容易精通
3、时代背景
3.1、微服务
- 微服务是一种架构风格
- 一个应用拆分为一组小型服务
- 每个服务运行在自己的进程内,也就是可独立部署和升级
- 服务之间使用轻量级HTTP交互
- 服务围绕业务功能拆分
- 可以由全自动部署机制独立部署
- 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术
3.2、分布式
分布式的困难
- 远程调用
- 服务发现
- 负载均衡
- 服务容错
- 配置管理
- 服务监控
- 链路追踪
- 日志管理
- 任务调度
- …
分布式的解决
- SpringBoot + SpringCloud
3.3、云原生
原生应用如何上云。Cloud Native
上云的困难
- 服务自愈
- 弹性伸缩
- 服务隔离
- 自动化部署
- 灰度发布
- 流量治理
- …
4、如何学习SpringBoot
4.1、官方文档架构
GA:稳定发布版
SNAPSHAT:快照版本
CURRENT:当前版本