Я пытаюсь внедрить bean-компонент prototype в bean-компонент singleton так, чтобы каждый новый вызов метода синглтон-компонента имел новый экземпляр прототипа bean-компонента.
Рассмотрим синглтон-бин, как показано ниже:
@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 в методе doSomething(). Таким образом, две строки кода в методе doSomething() создают новый экземпляр prototypeBean в каждой строке.
И так во 2-й строке - prototypeBean.display() печатает NULL.
Чего не хватает в конфигурации для этой инъекции?