我有一個類酒吧實現如下:如何避免在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美孚已經原型的原型豆,但酒吧本身單身是很好.. –