单例中的弹簧原型范围豆
我正在尝试在Bean中注入bean,以便对单例Bean方法的每个新调用都有一个原型Bean的新实例。prototype
singleton
考虑一个单例豆,如下所示:
@Component
public class SingletonBean {
@Autowired
private PrototypeBean prototypeBean;
public void doSomething() {
prototypeBean.setX(1);
prototypeBean.display();
}
}
我希望每次调用该方法时,都会使用一个新实例。doSomething()
PrototypeBean
下面是原型豆:
@Component
@Scope(value="prototype", proxyMode = ScopedProxyMode.TARGET_CLASS)
public class PrototypeBean {
Integer x;
void setX(Integer x) {
this.x = x;
}
void display() {
System.out.println(x);
}
}
似乎正在发生的事情是,Spring在方法中移交了PrototypeBean的新实例时过于急切。也就是说,该方法中的 2 行代码将在每行中创建一个新的 prototypeBean 实例。doSomething()
doSomething()
因此,在第二行中 - 打印 NULL。prototypeBean.display()
此注入的配置中缺少哪些内容?