springmvc

在平凡的生活中,不如抽出时间积以跬步,然后走得更远!


前言

今天接着昨天的内容,继续研究springmvc的各个组件、当明白了这些组件的作用后,串起来也就搞懂了springmvc。


一、HandlerMapping

作用:根据请求的信息(如 url、method、header 等)查找请求处理器,即找到自定义的 controller 中处理请求的方法。

二、HandlerExecutionChain

相信很多同学和我一样,看到这个组件,好像没见过。
大家应该知道在springmvc的处理流程中DS(dispatcherservlet)会首先找到handlerMapping。

public interface HandlerMapping {
	default boolean usesPathPatterns() {
		return false;
	}
	@Nullable
	HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception;
}

HandlerMapping接口的第二个方法返回的正式我们要研究的这个组件HandlerExecutionChain

什么是HandlerExecutionChain,看到Chain同学们应该立即想到了一种设计模式,没错,责任链模式。过滤器可以添加多个,正是添加到了这个组件中,然后该组件维护了一条责任链,既然是责任链一定有顺序。

上篇我们讲到过滤器中三个方法preHandle、postHandle、afterCompletion分别是正序、倒序、倒序执行的、这种执行顺序就体现在HandlerExecutionChain中!

当preHandle方法返回false(被拦截后)会去执行afterCompletion方法。

二、执行顺序

在这里插入图片描述
T1是T2父类
以上是创建两次T2对象的执行顺序
静态代码块>非静态代码块>构造方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值