Область применения Java и жизненный цикл бобов весной - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть этот вопрос, в весеннем веб-приложении, когда мы объявляем синглтон bean-компонента и внутри прототипа bean-компонента каждый раз, когда мы вызываем синглтон, bean-компонент prototype будет одинаковым, но если я хочу, чтобы компонент-прототип внутри faacde внутриконтроллер, как последний компонент может быть прототипом, если другой является синглтоном?Схема является этим одноэлементным контроллером-> одноэлементным фасадом-> прототипом сервиса. Спасибо.

1 Ответ

0 голосов
/ 29 сентября 2018

Если я вас правильно понял, есть много вариантов, которые вы можете использовать.Самые популярные:

1. Scoped proxy .Добавьте эту аннотацию к вашему прототипу bean:

@Scope( value = ConfigurableBeanFactory.SCOPE_PROTOTYPE, proxyMode = ScopedProxyMode.TARGET_CLASS)

2.@Lookup аннотация с внедрением метода:

@Component
public class SingletonFacade {

   @Lookup
   public PrototypeBean getPrototypeService() {
       return null;
   }
}

3. ObjectFactory Interface :

@Componenet
public class SingletonFacade {

   @Autowired
   private ObjectFactory<PrototypeService> prototypeBeanObjectFactory;

   public PrototypeBean getPrototypeInstance() {
       return prototypeBeanObjectFactory.getObject();
   }
}

Более подробную информацию вы можете найти здесь - https://www.baeldung.com/spring-inject-prototype-bean-into-singleton

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...