Junior — Middle
¿Cómo funcionan los ámbitos de vista de los componentes en Spring y cuáles son sus características?
sobes.tech AI
Respuesta de la IA
В Spring области видимости (scopes) компонентов определяют жизненный цикл и видимость бинов в контейнере.
Основные области видимости:
- singleton (по умолчанию): один экземпляр бина на весь контейнер Spring. Все запросы получают один и тот же объект.
- prototype: при каждом запросе создаётся новый экземпляр бина.
- request: бин живёт в рамках одного HTTP-запроса (только для веб-приложений).
- session: бин живёт в рамках HTTP-сессии пользователя.
- application: бин живёт в рамках ServletContext (веб-приложение).
- websocket: бин живёт в рамках WebSocket-сессии.
Особенности:
- Singleton — самый распространённый и экономичный по ресурсам.
- Prototype требует ручного управления жизненным циклом, Spring не вызывает методы уничтожения.
- Request и session scope полезны для веб-приложений, позволяют хранить состояние, связанное с конкретным пользователем или запросом.
Пример объявления с областью видимости prototype:
@Component
@Scope("prototype")
public class MyPrototypeBean {
// ...
}