Middle+
25
0
questionbank

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

Answer from sobes.tech neural network

Бин с областью видимости 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) или

Register or sign in to get access to full answers for all questions from the question bank.

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