springmvc处理过程

JPA和Hibernate的关系就像JDBC和JDBC驱动的关系,JPA是规范,Hibernate除了作为ORM框架之外,它也是一种JPA实现。JPA怎么取代Hibernate呢?JDBC规范可以驱动底层数据库吗?答案是否定的,也就是说,如果使用JPA规范进行数据库操作,底层需要hibernate作为其实现类完成数据持久化工作。
jpa相当于接口,是一种规范,Hibernate相当于它的一种实现,spring data Jpa相当于更高级的一种封装

springMvc是spring家族的,主要处理web模块
在maven中spring web mvc包包括spring web包
maven中导入spring web mvc就可以
实现controller的三种方式
方式1:实现Controller的接口
方式2:实现HttpRequestHandler接口
方式3:直接就是一个普通JAVA类 (使用注解的方式,注意:要配置全注解!!)

DispatcherServlet继承FrameworkServlet继承HttpServletBean继承HttpServlet所有,实际上也就是一个servlet
最核心的代码是FrameworkServlet中的service方法,再运行processRequest方法,再运行到doService抽象方法
DispatcherServlet实现抽象方法doService,运行doService方法,再运行最核心的doDispatch方法,mappedHandler = this.getHandler(processedRequest),进入getHandler此方法,得到一个handlerMapping集合里面存着两个对象,循环遍历这两个对象,第一次遍历得到的handler对象的属性值里包含自己手写的对象控制器和拦截器,这个对象不为空就返回此handler对象,这个对象为HandlerExecutionChain类

因为controller创建方式有三种,这样可以知道使用哪种控制器,这样更加灵活

HandlerMaping映射器中有两种对象,一个是用注解配置的对象,一个是xml配置的对象
在这里插入图片描述
1、用户发送请求到控制器,核心为DispatcherServlet
2、到HandlerMaping映射器中查找Handler,请求获取Handler,Handler就是controller
3、返回Handler
4、请求执行Handler(执行控制器),HandlerAdapter也相当于一个集合,有三个对象,将上一步的Handler来去匹配集合中的适配器,一旦匹配到了,则返回此适配器
5、调用方法(xml方式使用的是将Handler强转为Controller,注解方式复杂很多)
6、返回模型数据和视图名称
7、返回一个ModelAndView

对面试官说,一个用户发送servlet请求到前端控制器,首先通过HandlerMapping拿到一个Handler,通过HandlerExcuteChain返回的,包括拦截器和Handler,通过返回的Handler请求,去HandlerAdapter中拿到最
合适的适配器,然后执行controller

源码讲解:直白的理解两个非常重要的组件
第一个就是2个Handler中,找到合适及控制器
BeanNameUserHandlerMaping@833153a, xml的配置方式的控制器
RequestMappingHandlerMapping@3602f818 注解方式的控制器
第二个就是:从3个Adapter中,找到合适的处理器
HttpRequestHandlerAdapter@28dc72d7, SimpleControllerHandlerAdapter@712691,xml的配置方式
requestM挨批评HandlerAdapter@4d763f47 注解方式的Adapter

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值