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为例
本文暂时没有评论,来添加一个吧(●'◡'●)