La diferencia entre el filtro interceptor, el filtro HandlerInterceptor y el oyente Listener

El interceptor de Spring tiene similitudes con el filtro de Servlet, por ejemplo, ambos son la encarnación de las ideas de programación AOP, y ambos pueden implementar la verificación de permisos y el registro. la diferencia es:

1. El alcance del uso es diferente: el filtro está estipulado por la especificación Servlet y solo se puede usar en programas web. El interceptor se puede usar no solo en programas web, sino también en programas de aplicación y swing.
2. Las especificaciones son diferentes: el filtro se define en la especificación de Servlet y es compatible con el contenedor de Servlet. El interceptor está en el contenedor Spring y es compatible con el marco Spring.
3. Los recursos utilizados son diferentes: al igual que otros bloques de código, el interceptor también es un componente de Spring, administrado por Spring y configurado en el archivo Spring, por lo que puede usar cualquier recurso
y objeto en Spring, como objeto de servicio, datos Las fuentes, la gestión de transacciones, etc., se pueden inyectar en el interceptor a través de loC: mientras que Filter no puede.
4. Profundidad diferente: el filtro solo funciona antes y después del Servlet. El interceptor puede profundizar en la parte delantera y trasera del método, antes y después de lanzar la excepción, etc., por lo que el uso del interceptor tiene una mayor flexibilidad.
Por lo tanto, en los programas basados ​​en Spring, los interceptores deben usarse primero.

El oyente se usa para monitorear la llamada al método o el cambio de propiedad de otro objeto Java. Cuando ocurre el evento anterior en el objeto monitoreado, un método del oyente se ejecutará inmediatamente.
Usos: tarea cronometrada
Spring framework (archivo de configuración cargado con el inicio del servidor) ContextLoaderListener

おすすめ

転載: blog.csdn.net/lx9876lx/article/details/120620138