该文本笔记 来源于尚硅谷:SpringBoot2文本教程
一方面为了缩短做笔记的时间,另一方面也为了后续巩固复习时方便。直接在尚硅谷官方笔记上进行标注个人认为需要关注的点。如需转载请务必注明笔记文本来源于尚硅谷教学课程。
一. Spring与SpringBoot
1、Spring能做什么
1.1、Spring的能力
文章图片
1.2、Spring的生态 https://spring.io/projects/spring-boot
覆盖了:
web开发
数据访问
安全控制
分布式
消息服务
移动开发
批处理
…
1.3、Spring5重大升级
1.3.1、响应式编程
文章图片
1.3.2、内部源码设计
基于Java8的一些新特性,如:接口默认实现。重新设计源码架构。
SpringBoot2基于java8实现。2、为什么用SpringBoot Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”.
java8: 引入接口默认实现。为什么说java8的引入使得spring和springboot底层设计结构发生了很大的变化。spring中有很多接口,接口中定义了上百个方法,倘若我们只想让类A实现接口的前三个方法,那么后面的所有方法都要空定义出来。因此可以采用适配器设计模式,适配器设计模式使用类实现接口所定义的方法,尽管是空实现,那么当A想要只实现接口的前三个方法时,只需要继承于适配器并重写对应的三个方法即可。但是有了接口默认实现(在方法之前加default关键字)之后,类A想实现哪几个方法都可以。
能快速创建出生产级别的Spring应用
2.1、SpringBoot优点
- Create stand-alone Spring applications创建独立Spring应用
- Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)内嵌web服务器
- Provide opinionated ‘starter’ dependencies to simplify your build configuration自动starter依赖,简化构建配置
- 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技术栈的快速开发脚手架
2.2、SpringBoot缺点
- 人称版本帝,迭代快,需要时刻关注变化
- 封装太深,内部原理复杂,不容易精通
In short, the** microservice architectural style** is an approach to developing a single application as a suite of small services, each running in its own process and communicating with **lightweight **mechanisms, often an **HTTP **resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.-- James Lewis and Martin Fowler (2014)
- 微服务是一种架构风格
- 一个应用拆分为一组小型服务
- 每个服务运行在自己的进程内,也就是可独立部署和升级
- 服务之间使用轻量级HTTP交互
- 服务围绕业务功能拆分
- 可以由全自动部署机制独立部署
- 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术
将一个大型服务拆分成一个个微服务,这就又涉及到分布式的问题,随之而来给分布式带来一系列困难。3.2、分布式
文章图片
分布式的困难
- 远程调用
- 服务发现
- 负载均衡
- 服务容错
- 配置管理
- 服务监控
- 链路追踪
- 日志管理
- 任务调度
- …
- SpringBoot + SpringCloud
文章图片
3.3、云原生 【#|SpringBoot2学习笔记一--Spring与SpringBoot2】原生应用如何上云。 Cloud Native
上云的困难
- 服务自愈
- 弹性伸缩
- 服务隔离
- 自动化部署
- 灰度发布
- 流量治理
- …
文章图片
4、如何学习SpringBoot 4.1、官网文档架构
文章图片
文章图片
查看版本新特性;
https://github.com/spring-projects/spring-boot/wiki#release-notes
文章图片
推荐阅读
- #|Servlet 架构思路(MVC)
- intellij-idea|全网最详细(基于SpringMVC实现CRUD&文件上传下载)
- spring|SpringMVC ---- CRUD和文件上传下载
- spring|Spring Boot面试必问(启动流程)
- java|一文弄懂 Spring boot 启动流程
- SpringBoot篇|Spring Boot启动过程
- spring|Spring Boot 启动流程
- Spring|spring boot启动流程
- Spring|Spring Boot的启动流程