Spring的拦截器与Servlet的Filter 有相似之处,比如二者都是AOP编程思想的体现,都能实现权限检查、日志记录等。不同的是:

1、使用范围不同: Filter 是Servlet规范规定的,只能用于Web程序中。而拦截器既可以用于Web程序,也可以用于Application、Swing 程序中。
2、规范不同: Filter是在Servlet 规范中定义的,是Servlet容器支持的。而拦截器是在Spring容器内的,是Spring框架支持的。
3、使用的资源不同: 同其他的代码块一样, 拦截器也是一一个Spring 的组件,归Spring管理,配置在Spring文件中,
因此能使用Spring里的任何资源、对象,例如Service对象、数据源、事务管理等,通过loC注入到拦截器即可:而Filter则不能。
4、深度不同: Filter 在只在Servlet前后起作用。而拦截器能够深入到方法前后、异常抛出前后等,因此拦截器的使用具有更大的弹性。
所以在Spring构架的程序中,要优先使用拦截器。

监听器用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。
用处:定时任务
Spring框架(配置文件随服务器启动加载) ContextLoaderListener

posted on 2021-10-06 00:08  Time。时光  阅读(116)  评论(0编辑  收藏  举报