拦截器模式

拦截器模式

什么是拦截器模式?

拦截器模式依赖于web框架,在SpringMVC中就是依赖于SpringMVC框架。在实现上,基于Java的反射机制,属于面向切面编程(AOP)的一种运用,就是在service或者一个方法前,调用一个方法,或者在方法后,调用一个方法,比如动态代理就是拦截器的简单实现,在调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在调用方法后打印出字符串,甚至在抛出异常的时候做业务逻辑的操作。由于拦截器是基于web框架的调用,因此可以使用Spring的依赖注入(DI)进行一些业务操作,同时一个拦截器实例在一个controller生命周期之内可以多次调用。但是缺点是只能对controller请求进行拦截,对其他的一些比如直接访问静态资源的请求则没办法进行拦截处理。

---------------------------以上是知乎上搜来的解释,下边是我自己对拦截器模式的理解-------------------------

上课了解到SpringMVC的底层就是拦截器模式,框架提供一个接口和一个方法,让目标类的每个方法执行时都会走一遍流程:执行Interceptor实现类定义的方法,先执行before,这个方法会返回一个布尔值,如果返回为true则继续执行目标对象业务方法,若返回为false执行around方法,最终都会执行after方法。

要怎么才能实现拦截器?动态代理就很适合做这件事。

代理类接收目标类和Interceptor实现类,将运行流程写在InvocationHandler的Invoke方法中。

这样就会调用目标类的每一个方法都会使用到拦截器,而且没有侵入目标类源代码。

上一篇: 女生做什么职业好?这8个方向既稳定又高薪
下一篇: 幸福树的养殖方法和注意事项

相关推荐

蜜蜂如何酿造蜂蜜?自然界最甜美食物背后的奇妙过程
拒绝破解:从共享单车谈如何防止代码失窃
打印快递单用什么软件?十大品牌推荐
银行卡忘记密码了怎么修改密码,4种方法教给你
我先开道,如龙全系列白金杂谈和汇总(个人看法,持续更新)
拜仁17名球员参加世界杯,创造世界杯历史纪录