Spring 注入引用类 RuntimeBeanReference
RuntimeBeanReference
用于在运行时去获取 BeanDefinition
,因为在我们创建这个 BeanDefinition
的时候我们只知道他的 beanName
,并不确定是否已经注册了,这个时候就需要用 RuntimeBeanReference
例如
candidateComponents.forEach(t -> {
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(MapperFactoryBean.class);
Class<?> beanClass = ClassUtils.forName(t.getBeanClassName());
builder.addPropertyValue("mapperInterface", beanClass);
builder.addPropertyValue("qcrud", new RuntimeBeanReference(Qcrud.class));
registry.registerBeanDefinition(beanClass.getTypeName(), builder.getBeanDefinition());
});
推荐指数:
真诚点赞 诚不我欺~