Java Springbean接口定义
是否可以注册接口,并通过bean定义将接口实现附加到接口上? 我只想这样做:Java Springbean接口定义,java,spring,Java,Spring,是否可以注册接口,并通过bean定义将接口实现附加到接口上? 我只想这样做: @Bean public MyInterface myInterface(){ return new MyInterfaceImpl(); } interface MyInterface{ } class MyInterfaceImpl implements MyInterface{ } 但是以这种方式使用BeanDefinitionRegistry: @Autowired ApplicationContext
@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
我浏览了文档,但没有找到类似的内容。
这是可能的还是我只是在浪费时间?我在这里做了类似的事情:-只是使用工厂方法,而不是简单的类定义。移除整个工厂部件,并将其替换为一个简单的
setTargetClass(MyInterfaceImpl.class)代码>应该可以工作。我在这里做过类似的事情:-只是使用工厂方法而不是简单的类定义。移除整个工厂部件,并将其替换为一个简单的setTargetClass(MyInterfaceImpl.class)代码>可能会起作用。