我有一个类酒吧实现如下:如何避免在Spring中使用applicationContext.getBean?
class Bar implements ApplicationContextAware {
ApplicationContext applicationContext;
void barFoo() {
final Foo foo = applicationContext.getBean(Foo.class);
foo.doSomeWork();
foo.shutDownProperly();
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
}
而且富在我的配置定义如下:
<bean id="foo" class="biz.tugay.Foo" scope="prototype"/>
因为,一个Singleton富不会做的工作做好并且它必须每次都关闭。
我认为getBean
打破了整个“依赖注入n“/”可测试“原则。
但我怎么 “注入” 一 “原型富” 到 “酒吧” 为 “barFoo” 的方法?
取决于上下文,但你可能要改用单 –
@NickVanderhoven美孚已经原型的原型豆,但酒吧本身单身是很好.. –