В этой статье в основном рассматривается соответствующий контент о масштабах и жизненном цикле бобов, следующим образом.
Сфера применения Бин
Spring 3 определяет пять областей для бобов, а именно Singleton (Singleton), прототип (прототип), запрос, сеанс и глобальная сессия. Пять областей объясняются следующим образом:
1.singleton: режим Singleton, в весеннем контейнере IOC будет только один общий экземпляр бобов, независимо от того, сколько бобов на него относятся, они всегда указывают на один и тот же объект. Singleton Scope - это область по умолчанию весной. Вы также можете определить бобы как режим Singleton и настроить их как:
<bean id="userDao" scope="singleton"/>
2. Прототип: режим прототипа. Каждый раз, когда прототип, определяемый посредством, получается через пружинный контейнер, контейнер создает новый экземпляр боба. Каждый экземпляр бобов имеет свои собственные атрибуты и состояние, а в Синглтоне есть только один объект в глобальном контексте. Как правило, используйте применение прототипа для бобов и синглтона для без сохранения состояния.
3. Проверка: в HTTP -запросе контейнер вернет тот же экземпляр бобов. Тем не менее, для различных HTTP -запросов будет сгенерирована новая фасоль, и бобы действительны только в текущем HTTP -запросе.
<bean id="loginAction" scope="request"/> , Для каждого HTTP -запроса контейнер пружины создает совершенно новый экземпляр в соответствии с определением боба, и экземпляр действителен только в текущем HTTP -запросе, и другие запросы не могут увидеть изменение в статусе в текущем запросе. Когда текущий HTTP -запрос заканчивается, экземпляр Bean также будет уничтожен.
4.session: в сеансе HTTP контейнер вернет тот же экземпляр бобов. Для различных запросов сеанса будет создан новый экземпляр, а экземпляр боба действителен только в текущем сеансе.
<bean id="userPreference" scope="session"/> , так же, как http -запрос, создайте новый экземпляр каждого запроса сеанса, и никакие атрибуты не совместно используются между различными экземплярами, и экземпляр действителен только в своем собственном запросе сеанса. Если запрос заканчивается, экземпляр будет уничтожен.
5. Глобальный сеанс: в глобальном сеансе HTTP контейнер вернет тот же экземпляр боба, который действителен только при использовании контекста портлета.
Жизненный цикл бобов
После введения масштаба бобов, как упоминалось выше, жизненный цикл бобов будет объяснен на основе масштаба бобов.
Весенние контейнеры могут управлять жизненным циклом бобов под синглтоном. В этой области пружина может точно знать, когда создается боб, когда инициализация завершена и когда она уничтожена. За прототип бобов Spring отвечает только за их создание. Когда контейнер создает экземпляр бобов, экземпляр бобов передается управлению кодом клиента. Весенний контейнер больше не будет отслеживать свой жизненный цикл и не будет управлять жизненным циклом тех бобов, настроенных как прототип. Выполнение жизненного цикла бобов весной является очень сложным процессом, и читатели могут использовать методы, предоставленные Spring, для настройки процесса создания бобов. Весенние контейнеры выполняют большую работу, прежде чем можно было бы использовать экземпляр боба:
Суммировать
Вышеуказанное посвящено этой статье, в которой обсуждаются масштаб и жизненный цикл бобов весной. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!