拦截器:拦截的是action的请求,拦截不了不进action的请求,这与他的底层实现有关系,底层是通过责任链和AOP来实现的,也就是说是通过动态代理来实现的
先手动写一个拦截器代码(责任链和AOP,spring对这部分底层进行了包装,工作中我们直接用spring来写拦截器就行)
-
先定义一个拦截器抽象类
-
自定义一个打印目标方法的拦截器
-
定义一个统计接口的调用时长的拦截器
-
定义统计一个方法调用次数,调用成功次数,调用失败次数的拦截器
-
定义一个拦截器链,所以的拦截器都保存在一个链表里,然后一个个的进行调用(因为定义了多个拦截器,所以希望一个个的执行拦截器,那么就是通过拦截器链也就是把所有的蓝机器保存在同一个链表里,告诉被拦截对象,有多少拦截器)
-
使用AOP来实现拦截,我这里用的是环绕通知,也就是通过动态代理重写action方法中的内容
-
应用
-
补充:上面代码中我没有给出目标方法中所需要的参数定义