Autowire прототипа боба в прототип боба?
Я работаю с некоторым существующим кодом, и он делает то, чего раньше не видел. Я имел дело с автоматическим подключением прототипов bean-компонентов к синглетонам с помощью метода инъекции или получения bean-компонента из контекста с помощью getBean (). То, что я вижу в этом коде, над которым я работаю, это bean-компонент, который является прототипом и извлекается с помощью getBean (), и у него есть зависимости с автосвязью. Большинство из них - синглтон-бобы, что имеет смысл. Но есть автопровод другого прототипа, и из того, что я вижу, кажется, что он получает новый компонент. Мой вопрос: когда вы автоматически соедините прототип с прототипом, это даст вам новый экземпляр? Поскольку запрос autowire выполняется не при запуске, а при создании этого компонента, идет ли он и создает новый экземпляр? Это идет вразрез с тем, что я думал о бинах autowire и прототипов, и я хотел услышать ответ от дикой природы. Спасибо за понимание. Я пытаюсь свести к минимуму мой рефакторинг этого кода, так как он немного спагетти-иш.
пример:
@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() {
}
}
Итак, когда вызывается doSomething () в MyPrototypeClass, является ли этот «компонент» одиночным или новым для каждого экземпляра MyPrototypeClass?