实现原理不同:拦截器是通过 HandlerInterceptor 接口来实现的,主要是通过 afterCompletion、postHandle、preHandle 这三个方法在请求前后进行拦截处理 。动态代理主要有 JDK 动态代理和 CGLIB 动态代理,JDK 通过反射生成代理类;CGLIB 通过生成被代理类的子类来实现代理 。 加入时机不同:拦截器是在运行阶段动态加入的;动态代理是在编译期或运行期生成的代理类 。 使用难易程度不同:拦截器相对简单,通过实现接口即可使用 。动态代理稍微复杂,需要了解动态代理的实现原理,然后通过相应的 api 实现 。小结在 Spring Boot 中,拦截器和动态代理都是用来实现功能增强的 , 但二者没有任何关联关系,它的区别主要体现在使用范围、实现原理、加入时机和使用的难易程度都是不同的 。
推荐阅读
-
小姐姐|文艺小姐姐都这样穿,衬衫+丝绸吊带裙,尽显女人味儿
-
鬼斗车|V概念车亮相 长安汽车:只有拼,才会赢!,Vision
-
北京头条移动端|景区内溜进受伤小白狐 专家:可能对当地野生动物造成危害
-
复旦大学泰州研究院|没错!,家长们注意了!孩子夏天吃什么水果最好?对着这份指南挑选
-
-
▲钓鱼:跑铅不等于滑铅,主线也不是随便就能在铅坠中滑动
-
-
-
-
-
-
-
大学生|以案说法|视体检为形式,某企业发现职业禁忌不调离被罚12.5万!
-
-
效果|西班牙王后又穿旧衣,加条腰带效果大不同,换个搭配温婉变惊艳
-
Intel|首发19亿一台的下代EUV光刻机 Intel将派人帮助ASML加速生产
-
-
-
-