SpringMVC中的几个重要接口

一:Spring中运用了大量的面向接口编程,面向抽象编程的设计方法。通过遍历实现了某个接口的所有实现类,找到匹配的实现类,向上转型为接口,最后通过接口调用接口方法,通过运行时多态来调用实现类的实现方法。因此,如果想要自定义组件,如自定义过滤器,自定义返回值处理器,自定义参数解析器,自定义视图解析器等都可以通过实现或继承某个接口来完成。

二:几个重要接口介绍:

       1.HandlerMapping:接口方法是getHandler方法,作用是获取匹配的handler。实现类为抽象类AbstractHandlerMapping,抽象类的getHandlerInternal方法,被自己子类AbstractHandlerMethodMapping重写,该子类通过lookupHandlerMethod返回匹配的handler。DispatcherServlet通过遍历所有的HandlerMapping来匹配正确的handler


        2.HandlerAdapter:获取适配器Adapter,具有一个handle方法。DisPatcherServlet通过遍历所有的HandlerApdapter实现类来匹配可以处理具体handler的Adapter,设计基本与HandlerMapping一致。


        3.HandlerInterceptor:拦截请求,有三个拦截方法,分别是preHandle,postHandle,afterCompletion,Spring也是在DispatcherServlert中通过遍历容器中所有的HandlerInterceptor,在不同时期调用对应的拦截方法.开发者可以通过实现该接口进而将实现接口方法从而自定义拦截器

        4.HandlerExceptonResolver:处理异常,具有resolveException方法,Spring也是通过遍历所有的异常解析器来匹配可以解析具体异常的解析器。开发者可以通过实现该接口来完成自定义异常解析器。

               可以 通过继承RuntimeException或者Exception来自定义异常类,并通过特定的注解来指定哪个异常处理器来处理该异常


        5.ViewResolver:寻找视图解析器,具有方法resolveViewName,通过ModelAndView中保存的视图名来遍历寻找合适的视图解析器。开发者可以通过实现该接口来自定义视图解析器

        6.View:解析视图,具有render方法,解析视图。开发者可以通过实现该接口的render方法来实现解析视图的方法

        7.ArgumentConverter:类型转换器,Spring中的类型转换器都实现了该接口,开发者可以通过实现该接口来自定义类型转换器

        8.ParamerResolver:参数解析器,Spring中的参数解析器都实现了该接口,开发者可以通过实现该接口来自定义参数解析器

        9 .ReturnValueHandler:返回值处理器,Spring中的返回值处理器都实现了该接口,开发者可以通过实现该接口来自定义返回值处理器

另外:SpringBoot中通过WebMvcConfigurer该接口可以向容器中添加自定义组件。通过实现特定的接口,可以自定义组件,如实现HandlerInterceptor,HandlerExceptonResolver,ArgumentConverter等接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值