一、MVC架构
1、定义
Model-View-Controller,一种软件设计范式,用于分离界面显示、业务逻辑、数据。
2、Model
① 作用:接受Controller的调遣,处理业务,处理数据
② 分类:
- 数据承载Bean:实体类,用于承载业务数据
- 业务处理Bean:Service 或 DAO 对象,用于处理用户请求
Bean:在构建工具中可视化操作的可重用软件组织
DAO:Database Access Object,数据库访问对象允许程序员请求访问微软的 Access 数据库
3、View
① 作用:用户交互界面,与用户直接交互
4、Controller
① 作用:接受用户请求,调用 Model 处理,然后选择合适的View给客户,分离视图与模型
5、工作流程
用户通过 view 页面发送请求
↓
Controller接受请求并解析,找到相应 Model 并转发给其处理
↓
Model 处理请求并将结果转交给 Controller
↓
Controller 将处理结果发给用于相应客户端的 View 页面,页面渲染后发送给客户端
二、SSH
MVC的升级方案
1、Struts
① 定义:表示层框架,一种完美的 MVC 实现
② 作用:界面展示、接受请求、分发请求
2、Spring
① 定义:业务逻辑层框架
② 作用:整合表示层和持久层
3、Hibernate
① 定义:持久层框架
② 作用:负责对关系数据库的操作
③ 实现方式:将数据库中的表实例化为一个类,表中的属性分别对应Hibernate类中的一个属性,从而真正实现面向对象开发
三、三层架构
SSH和SSM共用的逻辑架构
1、表示层(UI)
用途:展现给用户的操作界面。
2、业务逻辑层(BLL)
用途:根据用户传入的值返回用户想得到的值,实现一些具体问题的操作。
① 业务的处理;
② 数据的传递;
③ 逻辑判断;
④ 数据库数据验证;
3、数据访问层(DAL)
① 数据库数据的访问;
②根据输入值进行增删改查;
四、三层架构的目标
1、解耦
解耦,每一层只做自己的事情,互不影响,当需要其它层时再去调用。
2、隐藏
每个层只关心自己内部的事情,只知道下层的存在,不知道上层的存在。
五、三层架构的优缺点
1、优点
① 简化开发:开发人员开发时只需要关注三个层中的某一层
② 容易修改:降低了层与层之间的依赖,很方便的拆解出原有层次的一部分进行优化
③ 逻辑复用:有利于各层逻辑的复用
④ 标准化:有利于形成统一的开发标准
2、缺点
① 降低性能:多了一个中间层,业务不能直接访问数据库获得数据,而是需要业务逻辑层的协助
② 级联修改:为了维持分层结构,表示层中增加的新功能时必须要在业务逻辑层和数据访问层中增加相关功能的代码
六、SSM
1、Spring
- 作用
充当组建容器,创建、管理、存储组建
,减少编码压力,专注业务代码
① 提供IoC容器:负责对象创建、依赖注入、生命周期管理
② AOP支持:分离程序中的切面和业务逻辑,更加模块化和可重用的方式进行管理
③ MVC扩展
④ 事务管理:提供一种申明式的方式管理事务,简化事务管理的代码和配置
控制反转(IoC)与依赖注入(DI)
- 简单理解:
控制反转
是从键盘的角度看,由插入的键盘来控制电脑使用什么设备。依赖注入
是从电脑的角度看,输入设备是什么依赖注入的键盘是什么- 作用:解耦从而实现灵活搭配
- 实现:通过 xml 配置文件,达到选配各种功能的目的
切面(AOP)
- 简单理解:类似不同的职能部门,一类特定的问题即为一个
切面
,一个切面用于解决一类特定的问题- 作用:剥离出通用业务,使程序员专注于核心业务
事务
原子性,不可分割,要么全做要么全不做
2、SpringMVC
- 作用:
主要工作于表述层
参考前面的MVC部分
3、MyBatis
① 定义
- 用于调用数据库的框架,将数据库中的表翻译为
类
,字段翻译为类的属性
,记录翻译成对象