1、Spring可以做什么
1.1、Spring的能力
1.2 、Spring的生态

- 微服务
- 分布式
- web开发
- 数据访问
- 安全控制
- 消息服务
- 移动开发
- 批处理
-
2、为什么要用SpringBoot
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”.
能快速创建出生产级别的Spring应用2.1、SpringBoot的优点
Create stand-alone Spring applications
- 创建独立Spring应用
- Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
- 内置web服务器(默认Tomcat)
- Provide opinionated ‘starter’ dependencies to simplify your build configuration
- 自动starter依赖,简化构建配置 (防止jar包冲突)
- Automatically configure Spring and 3rd party libraries whenever possible
- 自动配置Spring以及第三方功能
- Provide production-ready features such as metrics, health checks, and externalized configuration
- 提供生产级别的监控、健康检查及外部化配置
- Absolutely no code generation and no requirement for XML configuration
- 无代码生成、无需编写XML
SpringBoot是整合Spring技术栈的一站式框架
Spring是简化Spring技术栈的快速开发脚手架
2.2、SpringBoot的缺点
- 人称版本帝,迭代快,需要时刻关注其变化
- 封装太深,内部原理复杂,不容易精通
-
3、SpringBoot产生时代背景
3.1、微服务
James Lewis and Martin Fowler (2014) 提出微服务完整概念。https://martinfowler.com/microservices/
简而言之,微服务架构风格是一种将单个应用程序开发为一套小服务的方法,每个服务都在自己的进程中运行并与轻量级机制(通常是HTTP资源API)进行通信。这些服务是围绕业务功能构建的,可通过全自动部署机制独立部署。这些服务的集中管理是最低限度的,这些服务可以用不同的编程语言编写,并使用不同的数据存储技术。 微服务是一种架构风格
- 一个应用拆分为一组小型服务
- 每个服务运行在自己的进程内,也就是可独立部署和升级
- 服务之间使用轻量级HTTP交互 ==主要指Restful API==
- 服务围绕业务功能拆分
- 可以由全自动部署机制独立部署
-
3.2、分布式
1. 分布式的困难
远程调用 一般使用http进行服务交互
- 服务发现 就是看哪些服务是可用的 Nacos
- 负载均衡 按照配置的算法合理的将请求分配给不同的服务器
- 服务容错 各种错误情况下的处理方式
- 配置管理 配置中心,修改配置让服务们自己同步
- 服务监控 多个服务以及云平台的资源消耗和健康状况
- 链路追踪
- 一个复杂的业务流程可能需要连续调用多个微服务,我们需要记录一个完整业务逻辑涉及的每一个微服务的运行状态,再通过可视化链路图展现,帮助软件工程师在系统出错时分析解决问题,常见的解决方案有Zipkin,SkyWalking。
- 日志管理
- 微服务架构默认将应用日志分散保存在每一个微服务节点上,当系统进行用户行为分析、数据统计时必须收集所有节点日志数据,非常不方便。这时候我们需要一个独立的日志平台,收集所有节点的日志数据并可方便对其进行汇总分析,然后进行可视化展示,常见的解决方案有ELK(Elasticsearch+Logstash+Kibana),EFK(Elasticsearch+Fluentd+Kibana)。
- 任务调度
-
2. 分布式的解决
-
4、如何学习SpringBoot
官网学习
