我想知道两者之间有什么区别?在以下情况下,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。

10-08 18:36