Junior — Middle
Spring'de singleton bean'e enjekte edilen prototip bean sayısı nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
В Spring, если singleton бин внедряет prototype бин напрямую через обычное автосвязывание, то prototype бин создаётся один раз при создании singleton бина и используется повторно — то есть фактически внедряется один экземпляр prototype бина.
Чтобы получить новый экземпляр prototype бина при каждом вызове, нужно использовать специальные механизмы, например:
ObjectFactoryилиProviderдля запроса нового экземпляра- метод с аннотацией
@Lookup
Пример с ObjectFactory:
@Component
public class SingletonBean {
@Autowired
private ObjectFactory<PrototypeBean> prototypeBeanFactory;
public void doSomething() {
PrototypeBean prototypeBean = prototypeBeanFactory.getObject();
prototypeBean.action();
}
}
Таким образом, количество внедряемых prototype бинов в singleton бин зависит от способа внедрения: при прямом внедрении — один экземпляр, при использовании фабрики — сколько угодно новых экземпляров по запросу.