SpringBoot2学习笔记一--Spring与SpringBoot2

该文本笔记 来源于尚硅谷: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实现。
java8: 引入接口默认实现。为什么说java8的引入使得spring和springboot底层设计结构发生了很大的变化。spring中有很多接口,接口中定义了上百个方法,倘若我们只想让类A实现接口的前三个方法,那么后面的所有方法都要空定义出来。因此可以采用适配器设计模式,适配器设计模式使用类实现接口所定义的方法,尽管是空实现,那么当A想要只实现接口的前三个方法时,只需要继承于适配器并重写对应的三个方法即可。但是有了接口默认实现(在方法之前加default关键字)之后,类A想实现哪几个方法都可以。

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服务器
  • 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技术栈的一站式框架
SpringBoot是简化Spring技术栈的快速开发脚手架

2.2、SpringBoot缺点

  • 人称版本帝,迭代快,需要时刻关注变化
  • 封装太深,内部原理复杂,不容易精通

3、时代背景

3.1、微服务

James Lewis and Martin Fowler (2014) 提出微服务完整概念。https://martinfowler.com/microservices/
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、云原生

原生应用如何上云。 Cloud Native

上云的困难

  • 服务自愈
  • 弹性伸缩
  • 服务隔离
  • 自动化部署
  • 灰度发布
  • 流量治理

上云的解决

4、如何学习SpringBoot

4.1、官网文档架构

查看版本新特性;
https://github.com/spring-projects/spring-boot/wiki#release-notes

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值