Red de conocimiento informático - Problemas con los teléfonos móviles - Pregunta de primavera sobre la clase BeanFactoryUtils y la diferencia entre getbean y getbeans

Pregunta de primavera sobre la clase BeanFactoryUtils y la diferencia entre getbean y getbeans

// Encuentra todos los HandlerMappings en ApplicationContext,

// incluidos los contextos ancestrales.

Map matchBeans = BeanFactoryUtils.beanOfTypeIncludeAncestors(

contexto, HandlerMapping.class, true, false);

// Encuentra todos los HandlerMapping en ApplicationContext,

// incluido HandlerMapping.class false);

Es decir, encontrar todos los HandlerMappings y sus subclases declaradas en el contexto. Puede haber más de un HandlerMapping, y estos HandlerMappings tienen declaraciones de orden y se pueden ordenar según el orden.

Mapa estático público beansOfTypeIncludeAncestors(ListableBeanFactory lbf, tipo de clase)

lanza BeansException {

Assert notNull(lbf, "ListableBeanFactory no debe ser nulo");

Resultado del mapa = new LinkedHashMap(4);

result.putAll(lbf.getBeansOfTypeIncludeAncestors)

Mapa estático público beansOfTypeIncludeAncestors(ListableBeanFactory lbf, tipo de clase)

lanza BeansException {

Assert.getBeansOfType(tipo) );

if (lbf instancia de HierarchicalBeanFactory) {

HierarchicalBeanFactory hbf = (HierarchicalBeanFactory ) lbf;

if (hbf.getParentBeanFactory() instancia de ListableBeanFactory) {

Mapa parentResult = beansOfTypeIncludeAncestors(

(ListableBeanFactory) hbf.getParentBeanFactory(), tipo );

for (Iterator it = parentResult.entrySet().iterator()); it.hasNext();){

Map.Entry entrada = (Map.Entry) it.next(

String beanName = (String) entrada.getKey();

if (!result.containsKey(beanName) & & amp; !hbf.containsLocalBean(beanName)) {

resultado.put(beanName, entrada.getValue());

}

}

}

devolver resultado;

}

Ver el código fuente en.