fix reference cache (#7412)

This commit is contained in:
Gong Dewei 2021-03-19 14:40:32 +08:00 committed by ken.lj
parent 68fdea818c
commit c3e432c298
3 changed files with 6 additions and 14 deletions

View File

@ -75,14 +75,6 @@ public class DubboConfigInitializationPostProcessor implements BeanPostProcessor
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
// try {
// if (bean instanceof ReferenceBean) {
// ReferenceBean referenceBean = (ReferenceBean) bean;
// referenceBeanManager.addReference(referenceBean);
// }
// } catch (Exception e) {
// throw new BeanInitializationException("Initialization reference bean failed", e);
// }
return bean;
}

View File

@ -94,13 +94,13 @@ public class ReferenceBeanManager implements ApplicationContextAware {
* @throws Exception
*/
public void prepareReferenceBeans() throws Exception {
for (ReferenceBean referenceBean : getReferences()) {
initReferenceBean(referenceBean);
}
// prepare all reference beans
Map<String, ReferenceBean> referenceBeanMap = applicationContext.getBeansOfType(ReferenceBean.class, true, false);
for (ReferenceBean referenceBean : referenceBeanMap.values()) {
addReference(referenceBean);
}
for (ReferenceBean referenceBean : getReferences()) {
initReferenceBean(referenceBean);
}
initialized = true;

View File

@ -252,8 +252,8 @@ public class ReferenceAnnotationBeanPostProcessor extends AbstractAnnotationBean
beanDefinitionRegistry.registerBeanDefinition(referenceBeanName, beanDefinition);
getBeanFactory().registerSingleton(referenceBeanName, referenceBean);
//referenceBeanManager.addReference(referenceBean);
//cache reference bean, avoid re-inject same element after prepare reference bean
referenceBeanManager.addReference(referenceBean);
} catch (Exception e) {
throw new Exception("Create dubbo reference bean failed", e);
}