Мне было интересно, какая разница между этими двумя? RuntimeBeanReference
работал для меня скорее RuntimeBeanNameReference
для следующего сценария:
GenericBeanDefinition bd = new GenericBeanDefinition();
bd.setBeanClassName(beanClassName);
MutablePropertyValues pvs = new MutablePropertyValues();
pvs.add("dataSource", new RuntimeBeanReference(dataSourceBeanName));
bd.setPropertyValues(pvs);
Вы правильно используете RuntimeBeanReference
. Код, который вы опубликовали, в основном, что создает Весна, когда у вас есть
<bean class="beanClassName">
<property name="dataSource" ref="dataSourceBeanName" />
</bean>
Во время выполнения Spring найдет dataSourceBeanName
на который ссылается dataSourceBeanName
и dataSourceBeanName
его.
RuntimeBeanNameReference
, насколько я могу судить (его очень мало использует), в основном используется для вставки имени компонента при проверке того, что в этом контексте существует компонент с этим именем.