[023-1].第1节:SpringBoot概述与项目搭建

我的后端学习大纲

SpringBoot学习大纲


1.Spring生态简介:

1.1.Spring生态:

1.2.Spring家族覆盖的功能范围:

  • web开发:
  • 数据访问:
  • 安全控制:
  • 分布式:
  • 消息服务:
  • 移动开发:
  • 批处理:

  • 在这里插入图片描述

1.3.Spring5中的响应式编程:

  • 1.在Spring5中有了很大的升级,它引入响应式编程,他是根据设计模式中的适配器模式;
  • 2.因为在java8中引入了接口的默认实现。所以当用到什么方法时,就重写哪个方法就可以直接使用。在这里插入图片描述

2.SpringBoot:

2.1.Spring Boot有关网址:

2.2.SpringBoot 各版本之间的差异:

在这里插入图片描述

2.2.Spring Boot概述:

  • 1.SpringBoot是Spring家族中的一个成员,是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程
  • 2.Spring Boot简化了spring的开发,可以轻松创建独立的、生产级的基于 Spring 的应用程序,不需要在书写大量的XML配置工作,无代码生成,开箱即用 ,是属于产品级别的应用,是简化Spring应用开发的一个框架;
  • 3.Spring Boot是J2EE的一站式解决方案,而Spring Cloud 是分布式的整体解决方案
  • 4.可以快速创建独立运行的Spring项目,可以与主流的一些框架集成,如Redis,MyBatis,Shiro,JWT等
  • 5.使用了嵌入式的Servlet 容器,意思就是在开发web项目,无需打成WAR包,就可以直接打成jar包。用java -jar命令可以直接来运行;SpringBoot内嵌的tomcat, jetty , Undertow这些web服务器
  • 6.在场景启动器starters中可以自动导入依赖与进行版本控制;当用哪个模块的功能时候,需要哪个模块的启动器。比如说我们用到了WEB,那就有web启动器,web功能里面所需要的的ar包以及jar包的版本,web启动器starters都会自动的给我们配置好
  • 7.可以进行大量的自动配置,自动配置Spring与第三方功能;可以简化开发,然后我们也可以更改一些默认值
  • 8.它还提供了准生产环境的运行时应用监控,提供了健康检查, 统计,外部化配置
  • 9.与云计算的天然集成

2.3.Spring、SpringMVC、SpringBoot 的关系:

  • 1.他们的关系大概是: Spring Boot > Spring > Spring MVC
  • 2.Spring MVC 只是 Spring 处理 WEB 层请求的一个模块/组件, Spring MVC 的基石是Servlet
  • 3.Spring 的核心是 IOC 和 AOP, IOC 提供了依赖注入的容器 , AOP 解决了面向切面编程
  • 4.Spring Boot 是为了简化开发, 推出的封神框架(约定优于配置[COC],简化了 Spring 项目的配置流程), SpringBoot 包含很多组件/框架,Spring就是最核心的内容之一,也包含 SpringMVC
  • 5.Spring 家族,有众多衍生框架和组件例如 boot、security、jpa 等, 他们的基础都是 Spring

2.4.如何理解:约定优于配置

  • 1.约定优于配置(Convention over Configuration/COC),又称按约定编程,是一种软件设计规范, 本质上是对系统、类库或框架中一些东西假定一个大众化合理的默认值(缺省值)
  • 2.例如在模型中存在一个名为 User 的类,那么对应到数据库会存在一个名为 user 的表,只有在偏离这个约定时才需要做相关的配置 (例如你想将表名命名为 t_user 等非 user 时才需要写关于这个名字的配置)
  • 3.简单来说就是假如你所期待的配置与约定的配置一致,那么就可以不做任何配置,约定不符合期待时, 才需要对约定进行替换配置
  • 4.约定优于配置理念:约定其实就是一种规范,遵循了规范,那么就存在通用性,存在通用性,那么事情就会变得相对简单,程序员之间的沟通成本会降低,工作效率会提升,合作也会变得更加简单

3.微服务、分布式、云原生概念的理解:

3.1.微服务

  • 1.微服务是一种架构风格
  • 2.一个应用拆分为一组小型服务
  • 3.每个服务运行在自己的进程内,也就是可独立部署和升级
  • 4.服务之间使用轻量级HTTP交互
  • 5.服务围绕业务功能拆分
  • 6.可以由全自动部署机制独立部署
  • 7.去中心化,服务自治。服务可以使用不同的语言、不同的存储技术

3.2.分布式:

a.分布式概念:

  • 1.各个微服务之间相互调用,组成一个大型的分布式网
    在这里插入图片描述

b.分布式的困难

  • 远程调用
  • 服务发现
  • 负载均衡
  • 服务容错
  • 配置管理
  • 服务监控
  • 链路追踪
  • 日志管理
  • 任务调度

c.分布式的解决:SpringBoot + SpringCloud

在这里插入图片描述

d.微服务架构和分布式架构的区别:

  • 含义不同
  • 1.微服务架构:微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术。
  • 2.分布式架构:分布式系统是若干独立计算机的集合,这些计算机对用户来说就像单个相关系统,即整个系统是由不同的计算机组成,而用户是无感知的,就像访问一台计算机一样。这里强调的是系统由不同物理上分离的计算机(服务器)组成
  • 概念层面不同
  • 1.微服务架构:微服务是设计层面的东西,一般考虑如何将系统从逻辑上进行拆分,也就是垂直拆分。微服务可以是分布式的,即可以将不同服务部署在不同计算机上,当然如果量小也可以部署在单机上。
  • 2.分布式架构:分布式是部署层面的东西,即强调物理层面的组成,即系统的各子系统部署在不同计算机上。
  • 解决问题不同
  • 1.微服务架构:微服务解决的是系统复杂度问题: 一般来说是业务问题,即在一个系统中承担职责太多了,需要打散,便于理解和维护,进而提升系统的开发效率和运行效率,微服务一般来说是针对应用层面的。微服务如果用在其它系统,如存储系统感觉怪怪的,就像说Mysql集群是微服务的,总觉得哪里不舒服。
  • 2.分布式架构:分布式解决的是系统性能问题: 即解决系统部署上单点的问题,尽量让组成系统的子系统分散在不同的机器上进而提高系统的吞吐能力。
  • 部署方式不同
  • 1.微服务架构:微服务的应用可以部署在是同一个服务器,不一定是分散在多个服务器上。微服务架构是一项在云中部署应用和服务的新技术。微服务架构是一种架构模式,它将一个复杂的大型应用程序划分成多个微服务,这些小型服务都在各自独立的进程中运行。
  • 2.分布式架构:分布式是将一个大的系统划分为多个业务模块,这些业务模块会分别部署到不同的机器上,通过接口进行数据交互。
  • 耦合度不同
  • 1.微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低,由于每个微服务都由独立的小团队负责,因此它敏捷性更高,分布式服务最后都会向微服务架构演化,这是一种趋势,不过服务微服务化后带来的挑战也是显而易见的,例如服务粒度小,数量大,后期运维将会很难
  • 分布式是否属于微服务?
  • 答案是属于
  • 微服务的意思也就是将模块拆分成一个独立的服务单元通过接口来实现数据的交互。但是微服务不一定是分布式,因为微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。这也是分布式和微服务的一个细微差别。

3.3.云原生


4.SpringBoot实现HelloWord:

4.1.编码实现:

  • 1.创建空项目:
    在这里插入图片描述

  • 2.更改maven版本:
    在这里插入图片描述
    在这里插入图片描述

  • 3.创建新模块:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 4.创建请求接口:
    在这里插入图片描述

  • 5.浏览器中请求测试接口:
    在这里插入图片描述

4.2.Spring与SpringBoot程序对比:

类/配置文件SpringSpringBoot
pom文件中的坐标手工添加勾选添加
web3.0配置手工制作
Spring/SpringMVC配置类手工制作
控制器手工制作手工制作

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值