1、本篇博客的背景和目的
目前我本人正在学习MyBatis框架,在原先了解并且懵懵懂懂使用的基础上,开始系统正式的学习。本篇博客阐述一下MVC架构模式和三层架构,以及明晰一下我们通常在Web项目中的编码层次。
2、MVC架构模式
我们编写Web的时候,使用最多的就是MVC架构模式。
M指的是数据,V指的是视图,C指的是控制器。
控制器就是接收请求,调用我们的Service对象,显示请求的处理结果;我们以前就是使用Servlet来作为控制器的;
视图,我们原先使用的是jsp,HTML,JS,CSS ,用来显示请求的处理结果;
数据肯定就可以来自于数据库,网络,文件等;
MVC的作用:可以实现解耦合;让MVC各负其职;使得系统的扩展性更好;更容易维护;
MVC更适合做WEB应用
3、三层架构模式
1、界面层(视图层):接收用户请求,调用Service,显示请求的处理结果;主要就是JSP,HTML 适合于用户直接打交道; 对应的包名就是controller
2、业务逻辑层:真正的处理业务逻辑,使用算法去处理数据的,将我们的数据返回给我们的界面层 它对应的就是service包,里面有很多 *****Service类;
3、持久层(数据访问层):这一层就是访问数据库的,或者是读取文件的,或者是访问网络获取数据的, 对应的包就是 dao ,在里面就有很多的 ***Dao类
那么三层架构请求处理的流程是什么呢?
首先用户发起请求,然后就到了界面层,然后就又到了业务逻辑层;业务逻辑层需要数据,那么就又会访问持久层;持久层就会到了数据库(MySQL)。然后就是请求逆着回来展示给用户就可以啦;
使用三层架构是有很多优点的:
1、结构清晰,耦合度低,各层分工明确;
2、可维护性高,可扩展性高;有利于标准化;
3、开发人员可以只关注整个结构中的其中某一层的功能的实现;
4、有利于各层结构的复用;
三层架构中,每一层都会使用一个框架:
界面层:使用SpringMVC框架 调用Service,显示结果(都是后端的,当然前端的什么VUE啊,HTML,Thymeleaf引擎啊等,这里就先不涉及了)
业务层:Spring框架
持久层:MyBatis框架