SSM_(springMVC+SpringBoot+Mybatis)开发架构介绍

2020/07/26 13:20
阅读数 2.8K

1. 目标

掌握主流的web开发框架,能够使用SSM(springMVC SpringBoot Mybatis)开发web应用

2. Java的用武之地

常见的软件架构体系主要分为两种:CS架构、BS架构

java主要用于开发BS架构的应用

2.1. CS架构

  • client客户端 server服务端
  • 需要在本地安装客户端程序才能访问服务端
  • QQ 、杀毒软件、网游

2.2. BS架构

  • 即浏览器/服务器(Browser/Server);
  • 本地只要有浏览器即可
  • 用浏览器打开的任何应用:淘宝、优酷、哔哩哔哩、论坛、博客、地图…

2.3. BS与CS架构的区别

  • 性能方面
    • CS:能充分发挥客户端PC的处理能力,大部分数据处理由客户端完成,处理能力强,速度快,用户体验好,但是对客户端电脑的配置要求高,客户群体受限,使用成本高。
    • BS:所有数据处理由服务器完成,客户端能安装浏览器即可,客户端要求低。
  • 个性化
    • CS:支持丰富的自定义设置,可以充分满足客户端个性化要求(换肤、声音显示设置、按键设置…)
    • BS:支持部分个性化定制功能,不如BS架构丰富
  • 更新问题
    • CS:服务端更新,客户端不更新无法使用
    • BS:只需要服务器端更新,客户端刷新浏览器即可
  • 开发成本
    • CS:不同的系统需要开发一套不同的客户端
    • BS:只需要开发一个版本,客户端能安装浏览器即可
  • 设备依赖性
    • CS:其他没有安装客户端的电脑无法使用;重装系统需要重装客户端
    • BS:客户端能安装浏览器即可

小结:

java主要用于开发BS架构的应用,客户端只需要有浏览器即可访问服务端

3. BS架构通信问题

在这里插入图片描述
问题:

  • 为什么输入网址能访问到天猫服务,而没有访问其他服务器(京东/苏宁…)
  • 浏览器和服务器是如何通信的
    • 浏览器如何告诉服务器要获取那些数据
    • 服务器怎么知道浏览器要要获取哪些数据
    • 服务器如何将数据响应给浏览器

3.1. IP地址和端口

因特网上的每台计算机和其它设备都规定了一个唯一的地址,叫做“IP地址,但是这个地址是一串数字,不方便记忆,为了方便记忆,互联网提供了域名。一个IP地址可以绑定一个或多个域名。

www.baidu.com 180.101.49.11

找到这台计算机(服务器)之后,但是这台计算机上启动了N多个服务(百度地图、百度翻译、百度贴吧…),怎么访问到百度搜索的程序呢?

通过端口就能确定要访问计算机上的哪个程序了。默认端口80

3.2. HTTP协议

HTTP(hypertext transport protocol),即超文本传输协议。这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。

HTTP就是一个通信规则,通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。其实我们要学习的就是这个两个格式!客户端发送给服务器的格式叫“请求协议”;服务器发送给客户端的格式叫“响应协议”。
在这里插入图片描述

3.3. 请求协议与响应协议

  • 请求协议的格式如下:

    • 请求首行
    • 请求头
    • 请求空行
    • 请求体
  • 响应协议

    • 响应首行
    • 响应头
    • 响应空行
    • 响应体
  • POST请求
    在这里插入图片描述

  • GET请求
    在这里插入图片描述

3.5. 小结:

1. 浏览器通过IP地址:端口 访问到应用程序
  1. 浏览器和服务器之间通过HTTP协议进行通信
    在这里插入图片描述

4. 服务器架构

前面我们已经清楚了BS架构的特点,接下来我们看看后端开发的应用程序的结构特点
在这里插入图片描述

4.1. 三层架构的意义

三层架构的目的着重点是解耦,也就是项目开发强调的“高内聚,低耦合”。不同的层级负责不同的工作。好比厨房后厨的分工:切菜、炒菜、传菜
在这里插入图片描述

  • 用户下单:
  1. 表现层(controller)负责接收客户端请求:购买商品ID,购买数量
  2. controller 调用业务层(service)处理下单业务,
  3. service 通过持久层(dao)获取数据库中的数据:判断是否黑名单用户、判断商品是否存在、是否限制购买数量、判断库存…下单(扣减库存、生成订单…).
  4. 数据持久层:完成对数据库中数据的读写操作,查询用户、查询商品、查询库存、修改库存、生成订单,将数据提供给service完成逻辑处理。
  5. service层完成下单功能,将下单结果返回给controller。
  6. controller再将业务层处理的下单结果返回给客户端(下单成功/失败)

4.2. MVC

三层架构是对整个项目的结构划分,MVC是针对表现层再度进行了划分,MVC分别表示 Model-View-Controller,最典型的MVC就是JSP + servlet + javabean的模式

Model(模型):模型对象负责封装数据(User、Student…)

View(视图):视图用于对模型数据进行展示,例如可以把一组数据展示为柱状图或者饼状图。

Controller(控制器):控制器负责从视图读取用户输入,将对应的模型数据转交给视图展示,起到控制协调作用
在这里插入图片描述

  • 各层的框架

SpringMVC:表现层框架,用于接收客户端请求,响应业务逻辑层的处理结果给客户端

Spring/SpringBoot:业务逻辑层框架,用于整合其他框架,提供非常丰富的业务处理功能,事务处理、定时任务、权限校验…

MyBatis:数据访问层(持久层)框架,负责和数据库打交道,从数据库中查询数据、写入数据。
在这里插入图片描述

4.3. 总结:

  1. java主要用来开发BS架构的web应用。
  2. 客户端与服务器端通过HTTP协议进行通信。
  3. 服务端应用程序为了解耦,分为三层架构设计:表现层、业务层、持久层。
  4. 其中表现层又进行了细分:模型、视图、控制器。
  5. 我们要掌握每一层对应框架的应用。
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部