spring bean接口定义

时间:2016-08-28 10:47:39

标签: java spring

是否可以通过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。

我浏览了文档,但却找不到这样的内容。 是可能还是我只是在浪费时间?

0 个答案:

没有答案