我已經將我的代碼從Spring的XML配置移到了Java配置中。我有一切工作,但我有一個關於我如何實現原型bean的問題 - 主要是,雖然我在做什麼工作,它是做到這一點的最佳方式?不知何故,它感覺不到!Spring的Javaconfig和原型豆
我寫的bean類是這樣的:
@Component
@Scope("prototype")
public class ProtoBean {
...
}
然後用豆 - 這是我只是不知道的一部分,儘管它的工作:
@Component
public class BeanUser implements ApplicationContextAware {
ApplicationContext context;
@Override
public void setApplicationContext(ApplicationContext context)throws BeansException
{
this.context = context;
}
public void getProtoBean() {
ProtoBean protoBean = context.getBean(ProtoBean.class);
}
}
這給我一個原型bean,在單元測試中,我只是嘲笑上下文,用模擬器調用setApplicationContext,並且模擬器的getBean調用返回一個模擬ProtoBean。所以一切都很好。
我在XML中使用了一個工廠來完成這項工作,但這似乎沒有工作得太好,所以這就是我最終選擇的地方。但是有沒有辦法做到這一點沒有上下文?或者只是一個更好的方法?
謝謝!
您目前沒有使用基於Java的配置。看看這裏http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-java – Bart
這是一個有趣的鏈接 - 謝謝。我正在使用@ComponentScan在我的java配置類中選擇它,所以它看起來似乎以相同的方式工作,有趣的是,這與他們給出的第一個例子相匹配 - 然後他們繼續談論「方法注入」這似乎是他們建議的解決方案。 謝謝! –