2016-04-06 2 views
1

если мы имеемSpring Beans Конфигурация

1- тематическое сценарий, где мы имеем класс А сконфигурированы как синглтон и дочерний класс B в качестве члена в классе А, настроенный как прототип.

2 Другой случайный сценарий, который является противоположным первому, где мы имеем класс А, определенный как прототип, и класс В, определяемый как одиночный.

Как весенний контейнер собирается инициализировать и справиться с этими двумя ситуациями, когда запрос делается для этих классов A и B?

ответ

1

Пожалуйста, обратите внимание на этот ответ - Spring session-scoped beans as dependencies in prototype beans?

Вы всегда можете придать боб более широкого охвата (например, синглтон) в боба более узкой сферы (например, контекст сеанса фасоли), но к нему другим способом, вам нужен прокси-сервер.

Это относится к вашим вопросам.

  1. Вы вводите более узкий бобин в более широкий круг фасоли. (Прототип уже, чем одиночный). Это должно сработать для вас.

  2. Вы пытаетесь ввести более широкий объемный компонент в более узкий бобовый компонент. Вам нужно использовать scoped-прокси.

+0

Я действительно ценю ваш ответ. Но вопрос здесь ... Как весна будет иметь дело с этими такими запросами для обоих сценариев, когда запрос, сделанный для класса A или класса B? @asg –

+0

@OmarAlQuaseer Извинения за поздний ответ. Ваш случай 1 прямолинейный, то есть инъецирующий прототип внутри одноэлементного. Прототип представляет собой более узкую область видимости (то есть короткую продолжительность жизни) по сравнению с синглтоном (который является более длинным компонентом продолжительности жизни). Следовательно, вы должны быть в порядке. – asg

+0

Только сложный случай - это второй, где вы пытаетесь ввести одиночный элемент внутри прототипа bean .. (т. Е. Более длинный бэк-компонент продолжительности жизни в более коротком периоде жизни). Поэтому для этого случая весна рекомендует использовать scoped-proxies (singleton bean) вместо прямых зависимостей. Позвольте мне попытаться поставить для вас код. – asg

Смежные вопросы