2
我已经意识到,引用范围为@Scope(proxyMode = ScopedProxyMode.TARGET_CLASS, value = "prototype")
的spring bean的实例似乎会调用bean的新实例。如何在Spring中使用setters
例如:
@Component
@Scope(proxyMode = ScopedProxyMode.TARGET_CLASS, value = "prototype")
class Item {
.....
}
@Component
@Scope(proxyMode = ScopedProxyMode.TARGET_CLASS, value = "prototype")
class A {
private Item item;
public void setItem(Item item) {
this.item = item;
}
public void method() {
item.doSomething();
}
}
@Component
@Scope(proxyMode = ScopedProxyMode.TARGET_CLASS, value = "prototype")
class B {
@Autowired
private A a;
@Autowired
private Item item;
void bMethod() {
a.setItem(item);
a.method();
}
}
的A
在a.setItem(item);
实例似乎是不同于在a.method();
,由此使得IMPOSIBLE在豆类使用存取方法与@Scope(proxyMode = ScopedProxyMode.TARGET_CLASS, value = "prototype")
范围。
这是预期的行为?我是否错过了关于@Scope(proxyMode = ScopedProxyMode.TARGET_CLASS, value = "prototype")
的使用的一些理解?