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