是否可以通过bean定义注册接口并以某种方式将接口实现附加到它? 我只想这样做:
@Bean
public MyInterface myInterface(){
return new MyInterfaceImpl();
}
interface MyInterface{
}
class MyInterfaceImpl implements MyInterface{
}
但是以这种方式使用BeanDefinitionRegistry:
@Autowired
ApplicationContext applicationContext;
public void register() {
BeanDefinitionRegistry registry = (BeanDefinitionRegistry) applicationContext.getAutowireCapableBeanFactory();
BeanDefinition myDefenition = BeanDefinitionBuilder
.genericBeanDefinition(MyInterface.class)
.setScope(BeanDefinition.SCOPE_SINGLETON)
.getBeanDefinition();
registry.registerBeanDefinition("myInterface", myDefenition);
BeanDefinition myImplDefenition = BeanDefinitionBuilder
.genericBeanDefinition(MyInterfaceImpl.class)
.setScope(BeanDefinition.SCOPE_SINGLETON)
.getBeanDefinition();
registry.registerBeanDefinition("myImpl", myImplDefenition);
}
在这里,我想要一些魔法强迫
applicationContext.getBeansOfType(MyInterface.class)
返回MyInterfaceImpl
bean。
我浏览了文档,但却找不到这样的内容。 是可能还是我只是在浪费时间?