网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

SpringMVC中HandlerAdapter适配器的作用是什么-创新互联

今天就跟大家聊聊有关SpringMVC中HandlerAdapter适配器的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

成都创新互联公司专业IDC数据服务器托管提供商,专业提供成都服务器托管,服务器租用,重庆服务器托管重庆服务器托管,成都多线服务器托管等服务器托管服务。

DispatcherServlte的initHandlerAdapters方法根据配置文件信息把HandlerAdapter注册到handlerAdapters(List)中。

如果在配置文件中没有配置,默认配置会读取DispatcherServlte.properties文件,该文件中配置了三种HandlerAdapter:HttpRequestHandlerAdapter,SimpleControllerHandlerAdapter和AnnotationMethodHandlerAdapter。

SimpleControllerHandlerAdapter :继承Controller方式所使用的适配器
HttpRequestHandlerAdapter   :HTTP请求处理器适配器
RequestMappingHandlerAdapter  :注解方式(@Controller)的处理器适配器

getHandler方法根据请求遍历注册到handlerAdapters中的适配器拿到对应的适配器处理。

for (HandlerMapping hm : this.handlerMappings) {
		HandlerExecutionChain handler = hm.getHandler(request);
		if (handler != null) {
		  return handler;
		}
}

HandlerAdapter接口有三个方法:

SpringMVC中HandlerAdapter适配器的作用是什么

supports方法:是判断该适配器是否支持这个HandlerMethod,就是当得到一个handler时,该接口子类该方法做判断(就是类似handler instanceof Controller的判断方式),用来得到适配这个handler的适配器子类。
handle方法:用来执行控制器处理函数,获取ModelAndView 。就是根据该适配器调用规则执行handler方法。

如果正常编写调用,就需要使用多个if else判断instance of

if(handler instanceof HttpRequestHandler){
 handle1();//HttpRequestHandler的处理方式
} else if (handler instanceof Controller){
 handle2();//Controller的处理方式
} else if (handler instanceof Servlet){
 handle3();//Servlet的处理方式
}

这种方法再添加新的处理器实现方式,就需要修改源码,新增else添加处理逻辑,不符合对扩展开放,对修改关闭原则。使用了HandlerAdapter后,当需要新增一种处理器(Controller)时,只需要新增一个HandlerAdapter即可,判断逻辑在他的supports方法中,处理逻辑在handle中,不需要修改任何其他代码。

看完上述内容,你们对SpringMVC中HandlerAdapter适配器的作用是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


分享标题:SpringMVC中HandlerAdapter适配器的作用是什么-创新互联
本文地址:http://bjjierui.cn/article/dpegep.html

其他资讯