每日八股day26

###   本系列帖子为鼠鼠复习八股巩固记忆和个人理解所写,如有错误纯属本人实力不佳,欢迎各位大佬阅读指正 ###

1.MVC分层?

概念:MVC是一种软件分层架构思想,分为Model模型,View视图,Controller控制器,目的实现职责分离,解耦。

Model,负责数据与业务逻辑,包含实体数据模型,业务逻辑,数据访问,处理数据库交互,业务计算。

View,负责数据展示,传统SpringMVC指页面,前后端分离项目中,前端页面属于View,后端不再渲染视图,返回JSON作为视图数据。

Controller,接受客户端请求,接受参数,调用Service执行业务,封装处理结果,返回数据或页面,只做调度,不写复杂业务逻辑。

后端衍生标准分层:结合SpringMVC开发,演变成后端常用四层架构

Controller(控制层),接收http请求,参数校验,请求路由,组装返回结果。

Service(业务层),编写核心业务逻辑,事务控制,业务规则判断。

Mapper/DAO(数据访问层),直接和数据库交互,执行SQL,完成增删改查。

Entity/DO(数据模型Model),数据库实体对象。

2.SpringMVC的处理流程?

核心入口:DispatcherServlet(前端控制器)

客户端发起HTTP请求,请求抵达Tomcat,被前端控制器拦截。

前端控制器调用HandlerMapping,HandlerMapping根据请求URL匹配到对应的Controller方法,封存为HandlerExecutionChain(包含Handler处理器+拦截器)返回。

前端控制器根据获取到的Handler,寻找支持该处理器的HandlerAdapter。

执行拦截器前置方法。

HandlerAdapter执行目标Controller方法,完成参数绑定,请求转换,调用业务代码,方法执行完成后返回ModelAndView。

执行拦截器后置方法。

前端控制器拿到ModelAndView,调用视图解析器(ViewResolver),解析视图名称得到View对象。

View对象进行视图渲染,把Model中的数据填充到视图。

执行拦截器最终回调afterCompletion,最终响应结果返回浏览器。

3.Handlermapping 和 handleradapter?

HandlerMapping(处理器映射器)

根据请求URL,查找对应的处理器Handler。

HandlerAdapter(处理器适配器)

适配并执行Handler方法。

为什么要适配器:

框架支持多种类型Handler,不同Handler调用方式不同,利用适配器模式屏蔽差异,前端控制器不用关心Handler具体类型。

两者协作流程:

请求进入前端控制器,HandlerMapping依据URL,找到Controller,HandlerAdapter适配处理器,执行Controller方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值