我想知道两者之间有什么区别?在以下情况下,RuntimeBeanReference
为我而不是RuntimeBeanNameReference
工作:
GenericBeanDefinition bd = new GenericBeanDefinition();
bd.setBeanClassName(beanClassName);
MutablePropertyValues pvs = new MutablePropertyValues();
pvs.add("dataSource", new RuntimeBeanReference(dataSourceBeanName));
bd.setPropertyValues(pvs);
最佳答案
您正在正确使用RuntimeBeanReference
。您发布的代码基本上就是Spring生成的代码
<bean class="beanClassName">
<property name="dataSource" ref="dataSourceBeanName" />
</bean>
在运行时,Spring将找到
dataSourceBeanName
引用的bean并将其注入。据我所知(
RuntimeBeanNameReference
用途很少),基本上用于注入Bean名称,同时验证上下文中存在具有该名称的Bean。