Определение бина не фактического бина, поэтому вы не можете разыгрывать.
Используйте GenericBeanDefinition вместо RootBeanDefinition.Затем вы можете использовать propertyValues
определения компонента для установки необходимых компонентов для AnnotationSessionFactoryBean.
Таким образом, вы можете сделать что-то вроде следующего перед вызовом registerBeanDefinition ():
bd.getPropertyValues().add("dataSource", dataSource);
bd.getPropertyValues().add("annotatedClasses", listOfClasses);
etc...
Обратите внимание, что если вы столкнетесь с проблемами, когда dataSource или другие свойства еще не определены, вы можете вместо этого использовать RuntimeBeanReference
в качестве заполнителя, выполнив что-то вроде bd.getPropertyValues().add("dataSource", new RuntimeBeanReference("dataSource")
.