我正在使用一些现有的代码,它正在做我以前没见过的事情.我已经使用方法注入处理将原型bean自动装配到单例中,或者使用getBean()从上下文中获取bean.我在我正在处理的代码中看到的是一个bean,它是一个原型并使用getBean()检索,并且它具有自动连接的依赖项.其中大多数是单身豆,这是有道理的.但是有一个另一个原型bean的autowire,从我看到的,它看起来似乎正在获得一个新的bean.我的问题是当你将原型自动装配到原型中时,会给你一个新实例吗?由于autowire请求不是在启动时,而是在创建此bean时,是否会创建新实例?这违背了我对autowire和原型bean的看法,我希望能够从野外听到答案.感谢您的任何见解.我正在尝试最小化我对这段代码的重构,因为它有点意大利面.
例:
@Scope("prototype")
public class MyPrototypeClass {
@Autowired
private ReallyGoodSingletonService svc;
@Autowired
private APrototypeBean bean;
public void doSomething() {
bean.doAThing();
}
}
@Scope("prototype)
public class APrototypeBean {
private int stuffgoeshere;
public void doAThing() {
}
}
Run Code Online (Sandbox Code Playgroud)
因此,当调用MyPrototypeClass中的doSomething()时,对于MyPrototypeClass的每个实例,"bean"是单例还是新单元?