面试中经常会被问到拦截器,过滤器,AOP 之间有什么关系。本文将探讨一下他们之间的关系。
更多精彩内容请看 web 前端中文站
http://www.lisa33xiaoq.net 可按 Ctrl + D 进行收藏
通过前面一系列对 AOP 的文章的介绍,我相信大家都对 AOP 比较熟悉了。AOP 似乎和拦截器、过滤器的功能相似。那么问题来了,aop 与拦截器、过滤器是什么关系。
先来回顾一下拦截器与过滤器。如下图一网友的测试,在 web.xml 中注册了 TestFilter1 和 TestFilter2。然后在 spring 的配置文件中配置了 BaseInterceptor 和 TestInterceptor。得到的结果如下图所示。从图中可以看出,拦截器和过滤器都横切了业务方法,看似符合 aop 的思想。
- Filter 过滤器:拦截 web 访问 url 地址。
- Interceptor 拦截器:拦截以 .action 结尾的 url,拦截 Action 的访问。
- Spring AOP 拦截器:只能拦截 Spring 管理 Bean 的访问(业务层 Service)
通过上图我们详细的介绍了拦截器,过滤器,AOP 的关系和区别。
【注:本文源自网络文章资源,由站长整理发布】