tenemos el siguiente código de legado 2.0.7 primavera:Q sobre AbstractApplicationContext.getBeansOfType() y getBean()
final Map<String, MyClass> secondaryFactories
= (Map<String, MyClass>) context.getBeansOfType(MyClass.class,
false, true);
return (MyClass) context.getBean("myClass");
donde context
es una instancia de
org.springframework.context.support.AbstractApplicationContext
Tenga en cuenta que ignoramos la valor de retorno de getBeansOfType()
. Esto funciona bien, pero el problema es que la llamada al getBeansOfType()
lleva mucho tiempo. Sin embargo, aunque ignoramos el valor de retorno de esta llamada, si tratamos de eliminar esta llamada, entonces la instancia de MyClass
devuelta por getBean()
no se ha inicializado por completo. (Así que, al parecer, la llamada a getBeansOfType()
está teniendo algún tipo de efectos secundarios que necesitamos.)
sospechamos que la llamada a getBeansOfType()
es una exageración y que se podía hacer algo más ligero para que la instancia de MyClass
obtiene la llamada a getBean()
se habrá inicializado por completo (pero no es nula y no se lanza ninguna excepción).
Entonces, ¿hay una manera más eficiente de hacer esto?
¿Qué es BeanType.MY_CLASS.getName()? –
¿Qué versión de Spring estás usando? Me parece un error. –