Коли ти створюєш визначення біна, то закладаєш набір правил створення фактичних екземплярів класу, визначеного цим визначенням біна. Думка про те, що визначення біна є набором правил дуже важлива, оскільки вона означає, що, як і у випадку з класом, можна створити безліч екземплярів об'єктів з одного набору правила.
Можна керувати не лише різними залежностями та конфігураційними значеннями, які потрібно підключити до об'єкта, що створюється з конкретного визначення біну, а й контролювати область видимості об'єктів, що створюються з конкретного визначення біна. Цей підхід має великі переваги і є гнучким, оскільки можна вибирати область видимості об'єктів, які ти створюєш за допомогою конфігурації замість того, щоб готувати область видимості об'єкта на рівні класу Java. Біни можна визначити для розгортання однієї з кількох областей видимості. Spring Framework підтримує шість областей видимості, чотири з яких доступні тільки в тому випадку, якщо ти використовуєш орієнтований на використання у вебсередовищі (web-aware) ApplicationContext. Також можна створити спеціальну область видимості.
У наступній таблиці описані підтримувані області видимості:
| Область застосування | Опис |
|---|---|
| об'єкт-одинак (singleton) |
(За замовчуванням) Застосовує область видимості єдиного визначення біна до єдиного екземпляра об'єкта для кожного IoC-контейнера Spring. |
| прототип (prototype) |
Застосовує область видимості єдиного визначення біна для будь-якої кількості екземплярів об'єктів. |
| запит (request) |
Застосовує область видимості визначення єдиного біна для життєвого циклу єдиного HTTP-запиту. Таким чином, для кожного нового HTTP-запиту створюється новий екземпляр біна на основі єдиного визначення біна. Діє лише в контексті орієнтованого на використання у вебсередовищі (web-aware) |
| сесія (session) |
Застосовує область видимості єдиного визначення біна для життєвого циклу HTTP |
| додаток (application) |
Застосовує область видимості єдиного визначення біна для життєвого циклу |
| вебсокет (websocket) |
Застосовує область видимості єдиного визначення біна для життєвого циклу |
SimpleThreadScope. Інструкції з реєстрації цієї або будь-якої іншої області видимості див. у розділі
Використання спеціальної області видимості.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ