SSM_(springMVC+SpringBoot+Mybatis)开发架构介绍
文章目录
- 1. 目标
- 2. Java的用武之地
- 2.1. CS架构
- 2.2. BS架构
- 2.3. BS与CS架构的区别
- 小结:
- 3. BS架构通信问题
- 3.1. IP地址和端口
- 3.2. HTTP协议
- 3.3. 请求协议与响应协议
- 3.5. 小结:
- 4. 服务器架构
- 4.1. 三层架构的意义
- 4.2. MVC
- 4.3. 总结:
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:能充分发挥客户端PC的处理能力,大部分数据处理由客户端完成,
- 个性化
- 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地址:端口 访问到应用程序
- 浏览器和服务器之间通过HTTP协议进行通信
4. 服务器架构
前面我们已经清楚了BS架构的特点,接下来我们看看后端开发的应用程序的结构特点
4.1. 三层架构的意义
三层架构的目的着重点是解耦,也就是项目开发强调的“高内聚,低耦合”。不同的层级负责不同的工作。好比厨房后厨的分工:切菜、炒菜、传菜
- 用户下单:
- 表现层(controller)负责接收客户端请求:购买商品ID,购买数量
- controller 调用业务层(service)处理下单业务,
- service 通过持久层(dao)获取数据库中的数据:判断是否黑名单用户、判断商品是否存在、是否限制购买数量、判断库存…下单(扣减库存、生成订单…).
- 数据持久层:完成对数据库中数据的读写操作,查询用户、查询商品、查询库存、修改库存、生成订单,将数据提供给service完成逻辑处理。
- service层完成下单功能,将下单结果返回给controller。
- controller再将业务层处理的下单结果返回给客户端(下单成功/失败)
4.2. MVC
三层架构是对整个项目的结构划分,MVC是针对表现层再度进行了划分,MVC分别表示 Model-View-Controller,最典型的MVC就是JSP + servlet + javabean的模式
Model(模型):模型对象负责封装数据(User、Student…)
View(视图):视图用于对模型数据进行展示,例如可以把一组数据展示为柱状图或者饼状图。
Controller(控制器):控制器负责从视图读取用户输入,将对应的模型数据转交给视图展示,起到控制协调作用
- 各层的框架
SpringMVC:表现层框架,用于接收客户端请求,响应业务逻辑层的处理结果给客户端
Spring/SpringBoot:业务逻辑层框架,用于整合其他框架,提供非常丰富的业务处理功能,事务处理、定时任务、权限校验…
MyBatis:数据访问层(持久层)框架,负责和数据库打交道,从数据库中查询数据、写入数据。
4.3. 总结:
- java主要用来开发BS架构的web应用。
- 客户端与服务器端通过HTTP协议进行通信。
- 服务端应用程序为了解耦,分为三层架构设计:表现层、业务层、持久层。
- 其中表现层又进行了细分:模型、视图、控制器。
- 我们要掌握每一层对应框架的应用。
发布评论