métodos alternativos proyecto de arranque del resorte no se pueden inyectar en el hilo de frijol

En la programación de primavera, multihilo es que a menudo utilizamos, pero en el hilo, pero no hemos podido inyectar el frijol que queremos, por lo que es necesario implementar métodos adicionales a las notas @Autowired, aquí hay dos implementaciones camino

1, por el hilo de frijol constructor tendrá que inyectar bean por la persona que llama en el momento de la construcción del hilo, en el grano correspondiente por el constructor para lograr

2, para obtener el correspondiente BeanFactory recipiente de granos o por SpringIoc ApplicationContext

ApplicationContext a conseguir a través de la herencia ApplicationContextAware

@Component 
implementos ApplicationContextHolder clase pública ApplicationContextAware {
private static Application Context applicationContext;
@ Override
setApplicationContext public void (Application Context applicationContext) lanza BeansException {
this.applicationContext = applicationContext;
}

De objetos estáticos públicos getBean (String beanName) {
retorno applicationContext.getBean (beanName);
}

De objetos estáticos públicos getBean (Clase O) {
retorno applicationContext.getBean (o);
}
}
通过继承BeanFactoryAware获取BeanFactory容器
@Component 
implementos BeanFactoryHolder clase pública BeanFactoryAware {

private static BeanFactory BeanFactory;
@ Override
setBeanFactory public void (BeanFactory BeanFactory) lanza BeansException {
this.beanFactory = BeanFactory;
}
}
 

Supongo que te gusta

Origin www.cnblogs.com/hik-wolf/p/12634143.html
Recomendado
Clasificación