美文网首页
2021-12-18 SpringMVC中根据当前Handler

2021-12-18 SpringMVC中根据当前Handler

作者: 归去来ming | 来源:发表于2021-12-18 20:16 被阅读0次

DispatcherServlet中的getHandlerAdapter方法:


image.png

跟踪supports方法,发现实现类有5个:


image.png

进入SimpleControllerHandlerAdapter看一下:

    @Override
    public boolean supports(Object handler) {
        return (handler instanceof Controller);
    }

是看自己写的controller是不是实现了Spring的Controller接口。但是查看公司的代码,或平时自己写的demo,并未实现Controller接口。我们经常使用的是注解@RequestMapping,所以进入AnnotationMethodHandlerAdapter看一下:

    @Override
    public boolean supports(Object handler) {
        return getMethodResolver(handler).hasHandlerMethods();
    }

跟踪方法hasHandlerMethods:

    // HandlerMethodResolver.java
    public final boolean hasHandlerMethods() {
        return !this.handlerMethods.isEmpty();
    }

    // 看到了RequestMapping
    protected boolean isHandlerMethod(Method method) {
        return AnnotationUtils.findAnnotation(method, RequestMapping.class) != null;
    }

相关文章

网友评论

      本文标题:2021-12-18 SpringMVC中根据当前Handler

      本文链接:https://www.haomeiwen.com/subject/aaggfrtx.html