1. Contextloger proporcionado por Spring
WebApplicationContext wac = contextloader.getCurrentWebApplicationContext (); wac.getBean (beanId);
Este método no depende de servlets y no requiere inyección. Sin embargo, debe tenerse en cuenta que cuando se inicia el servidor y el contenedor de resorte se inicializa, el contenedor de resorte no se puede obtener a través de este método
2. Implemente la interfaz ApplicationContextAware
Definir clases de herramientas
public class SpringContextUtil implementa ApplicationContextAWee {private static applicationContext ApplicationContext; // Spring Application Contexty Entorny/** * Implemente el método de devolución de llamada de la interfaz ApplicationContextAware y establece el entorno de contexto * @param ApplicationContext * @throws Beansexception */public void setApplicationContext (applicationContext ApplicationContext) lanza Beansexception {SpringContextUtil.ApplicationContext = ApplicationContext; } / ** * @return applicationContext * / public static ApplicationContext getApplicationContext () {return ApplicationContext; } / *** Get Object* @param Name* @return Object Una instancia de un bean registrado con el nombre de hecho* @throws beanSexception* / public static object getBean (nombre de cadena) lanza Beansexception {return ApplicationContext.getBean (nombre); } / ** * Obtenga un objeto de tipo requerido Type * Si el bean no se puede convertir por tipo, la excepción correspondiente se arrojará (beanNotOfRequiredTypeException) * @param name bean Registro de registro * @param requerido type de retorno de retorno * @return return requiredType Object * @throws beanSexception * / Object estatico de string (string name, clase de retorno requerido ApplicationContext.getBean (Nombre, RequiredType); } / ** * Si el beanFactory contiene una definición de frijol que coincide con el nombre de pila, return true * @param name * @return boolean * / public static boolean contensBean (nombre de cadena) {return applicationContext.ContainsBean (nombre); } /*** Determine si la definición de Bean registrada con un nombre de determinación es un singleton o un prototipo. * Si no se encuentra la definición de Bean correspondiente al nombre de determinación, se lanzará una excepción (nosuchbeanDefinitionException) * @param name * @return boolean * @throws nosuchbeanDefinitionException */ public static boolean issingleton (name de cadena) tira nosuchbeanDefinitionException {return ApplicationContext.issingleton (nombre); } / ** * @param nombre * @return class El tipo del objeto registrado * @throws nosuchbeanDefinitionException * / public static class getType (nombre de cadena) lanza NosuchBeanDefinitionException {return ApplicationContext.GetType (nombre); } / ** * Si el nombre de frijol dado tiene alias en la definición de frijoles, estos alias se devolverán * @param name * @return * @throws nosuchbeanDefinitionException * / public static string [] getAliases (nombre de cadena) lanza NosuchBeanDefinitionException {return Application.getaliases (nombre); }}3. Configurar frijoles
<
Resumir
Lo anterior son varias formas en que Spring obtiene frijoles en el código. Espero que el contenido de este artículo sea útil para el estudio o el trabajo de todos. Si tiene alguna pregunta, puede dejar un mensaje para comunicarse.