Hay muchas maneras de obtener frijoles en primavera, y lo resumiré nuevamente:
El primer tipo: Guarde el objeto ApplicationContext durante la inicialización
ApplicationContext AC = New FilesystemXMLApplicationContext ("ApplicationContext.xml"); ac.getBean ("BeanId"); Nota: Este método es adecuado para aplicaciones independientes que utilizan el marco Spring, y el programa requiere que el programa inicialice manualmente el resorte a través de archivos de configuración.
El segundo tipo: Obtener el objeto ApplicationContext a través de la clase de herramienta proporcionada por Spring
importar org.springframework.web.context.support.webApplicationContextUtils; ApplicationContext AC1 = WebApplicationContextUtils.getRequiredWebApplicationContext (servletcontext sc); applicationContex sc); ac1.getBean ("beanId"); ac2.getBean ("beanId"); ilustrar:
1. Estos dos métodos son adecuados para los sistemas B/S utilizando el marco Spring, obtenga el objeto ApplicationContext a través del objeto ServletContext y luego obtenga la instancia de clase requerida a través de él;
2. El primer método lanza una excepción cuando la adquisición falla, y el segundo método devuelve nulo.
El tercer tipo: heredado de la clase abstracta ApplicationObjectSupport
Nota: El método getApplicationContext () proporcionado por la clase abstracta ApplicationObjectSupport puede obtener fácilmente la instancia de ApplicationContext y luego obtener el Bean en el contenedor de resorte. Cuando se inicializa Spring, el objeto ApplicationContext se inyectará a través del método SetApplicationContext (ApplicationContext Context) de la clase abstracta.
Cuarto tipo: heredado de la clase abstracta WebApplicationObjectSupport
Nota: Similar al método anterior, obtenga la instancia de WebApplicationContext llamando a getWebApplicationContext ();
Quinto tipo: Implementación de la interfaz ApplicationContextAware
Descripción: Implemente el método SetApplicationContext (ApplicationContext Context) de esta interfaz y guarde el objeto ApplicationContext. Cuando se inicializa la primavera, el objeto ApplicationContext se inyecta a través de este método.
Aunque Spring proporciona los últimos tres métodos para implementar la herencia o implementación de las clases o interfaces correspondientes en las clases ordinarias para obtener los objetos AplicationContext de Spring, al usarlo, debe prestar atención a heredar o implementar estas clases o interfaces abstractas. O el objeto AplicationContext obtenido será nulo.
Lo siguiente muestra cómo obtener frijoles en contenedores de primavera implementando la interfaz ApplicationContextAware:
Primero, personalice una clase que implementa la interfaz ApplicationContextAware e implementa los métodos dentro:
package com.ghj.tool;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;public class SpringConfigTool implements ApplicationContextAware {// extends ApplicationObjectSupport{ private static ApplicationContext ac = null; SpringConfigTool static privado SpringCigTool = NULL; public sincronizado static springconfigTool init () {if (springconfigTool == null) {springconfigTool = new SpringConfigTool (); } return SpringConfigTool; } public void setApplicationContext (ApplicationContext ApplicationContext) lanza Beansexception {ac = ApplicationContext; } Public sincronizado Objeto estático GetBean (String BeanName) {return ac.getBean (beanName); }} En segundo lugar, configúrelo en el archivo ApplicationContext.xml:
Copie el código de la siguiente manera: <bean id = "springconfigtool"/>
Finalmente, puede obtener el frijol correspondiente en el contenedor de resorte a través del siguiente código:
La copia del código es la siguiente: SpringConfigTool.getBean ("BeanId");
Tenga en cuenta que cuando el servidor inicia la inicialización del contenedor de resorte, el contenedor de resorte no se puede obtener a través de los siguientes métodos:
importar org.springframework.web.context.contextloader; importar org.springframework.web.context.webapplicationContext; WebApplicationContext WAC = contextLoader.getCurrentWebApplicationContext (); wac.getbean (beanid);
Lo anterior se trata de este artículo, espero que sea útil para el aprendizaje de todos.