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 @Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { 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; return bean;
} }

View File

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

View File

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