weblistener servletcontext quartz not example ejemplo contextinitialized called java servlets servletcontextlistener

java - quartz - servletcontextlistener ejemplo



Orden de ejecuciĆ³n ServletContextListener (2)

¿Cómo definir el orden de la ejecución de ServletContextListener debido a la inicialización de la aplicación, si tengo varios ServletContextListener y algunos de ellos declarados en el descriptor de implementación y otros con anotación (@WebListener)?


Parece que conoce el orden de ejecución, pero desea saber qué sucederá si se declaran algunos oyentes en el descriptor de implementación y algunos utilizan la anotación, de modo que el descriptor de implementación y luego la anotación.

Tenga en cuenta que los constructores de todos los oyentes serán llamados primero en orden de descriptor de despliegue y luego anotación y luego los métodos del ciclo de vida en el mismo orden.


Si desea ejecutar escuchas en un orden particular, debe usar el descriptor de implementación para definirlos.

Las declaraciones a continuación se copian de la especificación del servlet :

8.2.3 :

Si el orden en que se invocan los oyentes, los servlets y los filtros es importante para una aplicación, se debe utilizar un descriptor de despliegue. Cuando se usan anotaciones para definir los oyentes, servlets y filtros, no se especifica el orden en que se invocan.

El orden se basará en el orden en que se definieron en el descriptor y en el elemento de ordenamiento absoluto en el web.xml o un elemento de ordenamiento en web-fragment.xml .

Antes de este lanzamiento de la especificación (Java ™ Servlet Specification, versión 3), los escuchas de contexto se invocaban en orden aleatorio. A partir de Servlet 3.0, los oyentes se invocan en el orden en que se declaran en el web.xml.

Las implementaciones de javax.servlet.ServletContextListener se invocan en su método contextInitialized en el orden en el que se han declarado, y en su contextDestroyed Método contextDestroyed en orden inverso.

Si tiene varios ServletContextListeners y algunos de ellos están declarados en el descriptor de implementación y otros con anotación, son los oyentes definidos en web.xml que obtendrán la precedencia. La declaración a continuación se copia de la misma sección (8.2.3) de la especificación del servlet:

La configuración especificada en el web.xml principal o un fragmento web tiene prioridad sobre la configuración especificada mediante anotaciones.