Java框架学习7-深入理解三层架构 和 MVC模式

一、三层架构 VS MVC模式

1、三层是三层,MVC是MVC,它们毫无关系的。

2、三层是从整个应用程序架构的角度来分的三层(如果程序需要,还可以分多层)

  • 1-开发人员可以只关注整个结构中的其中某一层;
  • 2-解耦,可以降低层与层之间的依赖;
  • 3-有利于标准化,结构更加的明确,在后期维护的时候,极大地降低了维护成本和维护时间;
  • 4-利于各层逻辑的复用; 
    比如将数据库操作代码封装到一层中,提供一些方法,可以根据参数直接调用方法,返回用户需要的相应数据,这样在处理具体的业务逻辑的时候,就不用关心数据的存储问题了。

3、MVC是从Web应用程序的视图层划分出来的不同功能的几个模块。

MVC是为了解决Web应用程序中用户界面的样式替换问题,把展示数据的 HTML 页面尽可能和业务代码分离。
MVC把纯净的用户界面展示逻辑独立到一些文件中(Views),
把和用户交互的程序逻辑单独放在一些文件中(Controller),
在Views 和 Controller 中传递数据使用专门封装数据的实体对象,这些对象统称为Models。

4、三层可以应用于任何语言、任何技术的应用程序;MVC只是为了解决Web应用程序中视图层各部分的耦合关系;它们互不冲突,可以同时存在,也可根据情况使用其中一种。

https://www.cnblogs.com/zhhh/archive/2011/06/10/2077519.html
https://blog.csdn.net/csh624366188/article/details/7183872

二、三层架构 和 MVC模式 详解

1、Java服务器开发三层架构:

  • 1-Controller控制层/表现层/web层、网页/后台的入口、和前端交互:可用框架为Spring MVC和Struts2->
  • 2-Service服务层/业务逻辑层、处理业务、连接Controller层和Dao层:可用框架为Spring->
  • 3-Dao持久层/数据访问层、读数据库CURD、和数据库交互:可用框架为Mybatis和Hinernate
    注意JavaBean就是实体类,用做数据封装,一个实体类/JavaBean对应数据库一张表

Java服务器开发三层架构的两种框架组合:SSH或者SSM

1-SSH:Struts2+Spring+Hibernate
2-SSM:SpringMVC+Spring+MyBatis,SpringMVC由Spring实现

Java服务器开发三层架构的实现流程(从里往外传数据):dao层读数据库->service层调用dao层->controller层调用service层

1-dao层从数据库中查询到数据,然后经过service层具体业务逻辑处理,再返回给controller层经过渲染成为网页,最后能给用户直接观看

Java服务器开发三层架构的实际开发流程(从外往里写代码):controller层调用service层->service层调用dao层->dao层读数据库

1-controller定义方法、实现方法调用service方法,然后service定义方法、实现方法调用dao方法,最后dao定于方法、实现方法写sql

MVC模式:设计和创建 Web 应用程序的模式,Model View Controller 模型-视图-控制器

1-Model对应m、是模型定义、和数据库交互、对应model包,处理Web应用程序数据逻辑的部分
2-View对应v、是视图、对应templates包,处理Web应用程序数据显示部分
3-Controller对应c、是控制器、对应controller包,处理Web应用程序用户交互

MVC模式的实现流程:View->Controller->Model->controller->View

在View输入账号密码,点击登陆;然后触发Controller调用Model的方法,Model检查后发现错误,返回出错信息;Controller再把错误信息显示在View上

2、Java服务器开发三层架构的注解写法(注解多写没事、最起码你会、只是用错了,少写了就说明你不行、掌握得不全面、会得很少)

1-dao(data access object数据访问对象)层:接口,上方注解@Mapper,里面读数据库~无注解
2-service层:类,上方注解@Service依赖注入,里面调用dao层~注解Autowired+dao层接口
3-controller层:类,上方注解@Controller,里面调用service层~注解Autowired+service层接口

3、Java服务器开发三层架构的代码存放的包:

①domain或entity包:就是JavaBean的包,实体类就是JavaBean,一个实体类/JavaBean对应数据库一张表,需要操作多少表就对应多少个实体类。
②dao包:就是上述的持久层/数据访问层。 ③service包:就是上述的服务层/业务逻辑层。
④utils包:就是存放工具类的包,比如自定义的一个Jdbc工具类JdbcUtil。
⑤controller或web包:就是上述的控制层/表现层/web层 ⑥template包或者view包:视图

4、Java服务器开发三层架构与Web应用的MVC模式:

共同的地方,就是三层架构的表现层中和MVC中都有Controller+Model
1-三层中的表现层:controller控制器包(包含model模型,即C是包含M的)+domain或entity实体包+template包或者view包
2-真正的MVC:controller控制器包(包含model模型,即C是包含M的)+template包或者view包

https://baijiahao.baidu.com/s?id=1670609555221014271&wfr=spider&for=pc
https://www.jianshu.com/p/0d4ac18ae96e

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值