springboot三层架构与MVC

三层架构与MVC

1. 三层架构是什么

把各个功能模块划分为表示层,业务逻辑层,和数据访问层三层架构,各层之间采用接口相互访问,并通过对象模型的实体类(model)作为数据传递的载体,不同的对象模型实体类一般对应数据库的不同表。


上层对下层的调用是通过接口实现的;下层对上层的真正服务提供者,是下层接口的实现类。

接口是相同的额,实现类是可以更换的。

2. 三层架构的目的

“高内聚,低耦合”

3.分层方式

  • 表示层(视图层View)

​ 在表示层调用业务层的方法,前台设计,相关控件,数据缓存都属于表示层。

​ 就是实现用户界面,将用户的需求传达和反馈。

  • 业务层(服务层Service)

​ 数据访问的逻辑放在业务层。对具体问题进行逻辑判断与执行操作;

​ 接收到表现层 的用户指令后,会连接数据访问层,作为表示层和数据层的桥梁,实现三层之间的数据连接和指令传达,对 接收数据 进行逻辑处理,实现数据的修改,获取,删除等功能,并将处理结果反馈到表示层,实现软件功能。

  • 数据层(持久层Dao)

    ​ 包含所建的数据库和一些存储过程(实现数据访问,分页,搜索算法等),被业务层调用

    ​ 是数据库的主要操作系统,实现 数据库 的增删改查等操作,并将操作结果反馈到业务逻辑层

    ​ 在实际运行的过程中,数据访问层没有逻辑判断能力,为了实现代码编写的严谨性,提高代码阅读程度,一般软件开发人员会在该层中编写 Data AccessCommon,保证数据访问层 数据处理功能。

  • 实体类库

    ​ 实体类库是数据库表的映射对象,在开发过程中,要建立对象实例,将关系数据库表采用对象实体化的方式表现出来,利用 GET 与 SET 把数据库表中的所有字段映射为系统对象,建立实体类库,进而实现各个结构层的参数传输,服务于其他三层。

举例:

假设数据库里有一个表 BOOKS(书),建立一个存储过程 GetAllBooks,用来读取书的信息,这样在业务层里编一个方法 GetBookS()和一个公用数据库访问类,GetBooks()就通过数据库访问类打开连接,执行在存储过程,返回数据 (返回类型可以是 DataT - able,DataSet,DataReader 或 者 实 体 类)。业务层单独编译成一个或者几个 DLL 文件。表示层通过调用GetBookS()返回数据绑定在相关的控件里。

4. 数据库与应用服务器的连接

应用服务器利用SQL语言进行连接数据库服务器。

5.什么是MVC

  • View

视图,为用户提供界面,与用户直接进行交互,处理数据可视化的部分。

  • Model

模型,用于处理应用程序数据逻辑的部分,实现增删改查功能,通常负责在数据库中存取数据,代表一个存取数据的对象或JAVA POJO

  • Controller

控制器,处理用户交互的部分。通常负责从视图读取数据,控制用户输入,并向model发送数据,在数据变化时更新视图。

1)接受请求,并将该请求跳转(转发,重定向)到模型进行处理

2)模型处理完毕后,再通过控制器,返回给视图中的请求。

当单机web页面中超链接和发送表单时,控制器本身不输出任何东西和做任何处理,仅对请求进行解析。他只是接受请求并决定调用哪个模型构建去处理请求,在确定用哪个视图来显示返回的数据。

6. MVC与三层架构的关系

7.一个简单的业务流程

  1. web视图发送一个请求 去往一个接口,比如/login
  2. 找到对应的 Controller,在spring 中具体路径体现为RequestMapping("/login")
  3. 访问这个路径,执行该``RequestMapping`中的逻辑
  4. Controller 找到对应的Service
  5. Service找到对应的Dao
  6. Dao联合Model(Bean)操作数据库
  7. 返回结果给Controller
  8. Controller对结果进行处理

项目结构解析,另一三层架构笔记

https://www.cnblogs.com/Acezhang/p/14466283.html

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值