Cómo usar Spring para obtener Beans
Método 2: obtener el objeto ApplicationContext a través de la clase utils proporcionada por Spring
Método 3: heredar de la clase abstracta ApplicationObjectSupport
Método 4: heredar de la clase abstracta WebApplicationObjectSupport
Método 5: implementar la interfaz ApplicationContextAware Descripción: este método es adecuado para aplicaciones independientes que utilizan el marco Spring, que requieren la inicialización manual de Spring a través de el archivo de configuración.
Método 2: Obtenga el objeto ApplicationContext a través de las herramientas proporcionadas por Spring
ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc2); .getBean ("beanId"); ac2.getBean("beanId");
Descripción: este método es adecuado para sistemas B/S que utilizan el marco Spring, que obtiene el objeto ServletContext a través del objeto ApplicationContext. Luego obtenga la instancia de clase requerida a través de él. La diferencia entre las dos herramientas anteriores es que la primera generará una excepción después de que falle la adquisición.
Método 3: heredar de la clase abstracta ApplicationObjectSupport
Descripción: la clase abstracta ApplicationObjectSupport proporciona el método getApplicationContext().
Inicialización de primavera. El objeto ApplicationContext se inyectará a través del método de clase abstracta setApplicationContext (contexto de ApplicationContext).
Método 4: heredar de la clase abstracta WebApplicationObjectSupport
Descripción: similar al método anterior. Llame a getWebApplicationContext() para obtener WebApplicationContext
Método 5: Implemente la interfaz ApplicationContextAware
Descripción: Implemente el método de la interfaz setApplicationContext (contexto de ApplicationContext) y guarde el objeto ApplicationContext. Spring inyectará el. objeto durante el proceso de inicialización.
El siguiente es el código para implementar el método de interfaz ApplicationContextAware. Los dos primeros métodos son similares:
public class SpringContextUtil implements ApplicationContextAware { // Spring ApplicationContextAware private static ApplicationContext applicationContext /*; * * Implementar el método de devolución de llamada de la interfaz ApplicationContextAware. Establecer el contexto * * *param applicationContext */ public void setApplicationContext(ApplicationContext applicationContext) { SpringContextUtil.}/** * @return ApplicationContext */ public static ApplicationContext getApplicationContext() { return applicationContext }/** * Obtener el objeto* *; @ nombre del parámetro * @return Objeto * @throws BeansException */ objeto estático público getBean(nombre de la cadena) lanza BeansException { return applicationContext.getBean(nombre } }
Wean(nombre de la cadena) lanza BeansException { return); applicationContext .getBean(name); } }.}
Aunque los últimos tres métodos proporcionados por Spring se pueden implementar en clases ordinarias que heredan o implementan las clases o interfaces correspondientes para obtener el objeto Spring ApplicationContext, cuando se usa Debe tenerse en cuenta que al utilizar estas clases o interfaces, las clases Java ordinarias que implementan estas clases o interfaces deben configurarse en el archivo de configuración Spring applicationContext.xml. De lo contrario, el objeto ApplicationContext estará vacío.
Método 6: a través de ContextLoader de Spring
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext (); wac.getBean(beanID);
Finalmente, proporcione un método que lo haga. not Un método que se basa en servlets y no requiere inyección. Sin embargo, es importante tener en cuenta que cuando se inicia el servidor. Cuando se inicializa el contenedor Spring, no puede obtener el contenedor Spring a través de los siguientes métodos. Para obtener más detalles, consulte el código fuente de Spring org.springframework.web.context.Spring.php.