Middle+
24
0
questionbank

Как себя поведёт прототипный бин в рамках синглтона?

Ответ от нейросети sobes.tech

Бин с областью видимости prototype, внедренный (инжектированный) в синглтон-бин, будет создан один раз при инициализации синглтона и далее использован многократно (одна и та же его копия) при каждом обращении к нему из синглтона. Spring создает прототипный бин при каждом запросе к нему из контейнера. В случае инъекции в синглтон, запрос происходит только при создании синглтона.

Чтобы решить эту проблему и получать новый экземпляр прототипного бина при каждом обращении, можно использовать следующие подходы:

  1. Внедрение ApplicationContext: Получать бин из контекста явно каждый раз.

    java
  2. Внедрение ObjectFactory<PrototypeBean> или Provider<PrototypeBean>: Spring предоставит прокси, который при вызове getObject() (для ObjectFactory) или

Бин с областью видимости prototype, внедренный (инжектированный) в синглтон-бин, будет создан один раз при инициализации синглтона и далее использован многократно (одна и та же его копия) при каждом обращении к нему из синглтона. Spring создает прототипный бин при каждом запросе к нему из контейнера. В случае инъекции в синглтон, запрос происходит только при создании синглтона.

Чтобы решить эту проблему и получать новый экземпляр прототипного бина при каждом обращении, можно использовать следующие подходы:

  1. Внедрение ApplicationContext: Получать бин из контекста явно каждый раз.

    java
  2. Внедрение ObjectFactory<PrototypeBean> или Provider<PrototypeBean>: Spring предоставит прокси, который при вызове getObject() (для ObjectFactory) или

Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.

spring-frameworkbean-scopedependency-injectionsingleton-beanprototype-beanspring-context