Cómo inicializar el contenedor Springmvc
Proceso general de inicialización:
Entonces, echemos un vistazo al diagrama de clases y la relación de herencia del controlador DispatcherServlet.
Primero, defina el servlet en web.xml, con load-on-startup=1: ?
Cuando se inicie el servidor, llame al método init de HttpServletBean para inicializar el servlet: ?
Este método a su vez llama a initSertlvetBean para la inicialización.
initWebApplicationContext es la inicialización del contenedor Spring mvc.
initWebApplicationContext es la inicialización del contenedor Spring mvc.
La implementación del método initFrameworkServlet(); está vacía y puede ser sobrecargada por subclases.
Ahora echemos un vistazo a initWebApplicationContext():?
WebApplicationContext?
WebApplicationContextUtils.getWebApplicationContext(getServletContext());?
Este paso es para obtener el contexto padre, que es el contexto raíz.
CreateWebApplicationContext(parent) es el proceso de inicialización de Spring mvc:?
Este proceso generará una instancia del contenedor Spring MVC XmlWebApplicationContext.
Y configure el contexto principal, configure ServletContext y otra información mediante los siguientes métodos.
El método Refresh reiniciará el contexto e inicializará el Bean: ?
Este proceso es el proceso de inicialización del bean. Podemos entenderlo brevemente:
Registrar MessageSource.
¿Registrar la clase de escucha ApplicationEventMulticaster?
Crear instancias de todos los beans singleton: FinishBeanFactoryInitialization(beanFactory);?
La atención se centra en el último paso, FinishRefresh();, que activará un evento de aplicación:
Vaya a AbstractApplicationContext en código Java.
¿protegido?{
publishEvent(new?ContextRefreshedEvent(this));?
}?
¿Dónde está el objeto XmlWebApplicationContext? . ?