专业的编程技术博客社区

网站首页 > 博客文章 正文

springMVC中的HandlerAdapter到底是什么?

baijin 2024-08-20 10:13:41 博客文章 13 ℃ 0 评论

spring-webmvc版本5.2.5,springboot版本2.2.6

一.HandlerAdapter是什么?

处理器适配,因为handlerMapping有好几种类型,有方法级别、有controller级别的、有静态资源,具体执行方式不统一,提供适配器包一层,让DispatcherServlet代码更干净,不会出现if else的分支判断;代码扩展性更好,增加组件handlerMapping/HandlerAdapter接口实现类,可以实现对DispatcherServlet无感知

二.HandlerAdapter怎么来的?

1.DispatcherServlet调用init()方法时,从spring ioc容器中取出所有HandlerAdapter类型的对象,并排序(所以HandlerAdapter的实例对象要实现Ordered排序接口)

2.sping ioc怎么会有HandlerAdapter?

@EnableAutoConfiguration自动装配-->>autoconfigure项目,默认自动装配文件META-INF\spring.factories-->>WebMvcAutoConfiguration,自动装配类往spring ioc容器中注册四种不同类型的HandlerAdapter实例对象,优先级排序RequestMappingHandlerAdapter、 HandlerFunctionAdapter、HttpRequestHandlerAdapter、 SimpleControllerHandlerAdapter

3.具体作用

HandlerAdapter接口有三个方法,判断是否支持的handler类型;调用handler,让handler去处理请求,返回结果;得到上次修改时间 ,实现简单缓存

RequestMappingHandlerAdapter为例

ServletInvocableHandlerMethod对象,反射执行method


Tags:

猜你喜欢

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表