我已经将我的代码从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配置类中选择它,所以它看起来似乎以相同的方式工作,有趣的是,这与他们给出的第一个例子相匹配 - 然后他们继续谈论“方法注入”这似乎是他们建议的解决方案。 谢谢! –