Sobes.tech
Junior — Middle

Μπορείτε να απαριθμήσετε και να περιγράψετε τις διάφορες περιοχές ορατότητας που χρησιμοποιούνται για τα beans στο Spring;

sobes.tech AI

Απάντηση από AI

В Spring Framework существуют несколько областей видимости (scopes) для бинов, которые определяют время жизни и видимость экземпляров бинов:

  1. singleton (по умолчанию) — один экземпляр бина создаётся на весь контейнер Spring. Все запросы к этому бину получают один и тот же объект.

  2. prototype — при каждом запросе к контейнеру создаётся новый экземпляр бина.

  3. request — бин живёт в течение одного HTTP-запроса. Используется в веб-приложениях, каждый HTTP-запрос получает свой экземпляр.

  4. session — бин живёт в течение HTTP-сессии пользователя.

  5. application — бин живёт в пределах ServletContext, то есть в рамках всего веб-приложения.

  6. websocket — бин живёт в течение WebSocket-сессии.

Пример объявления с областью видимости:

@Component
@Scope("prototype")
public class MyPrototypeBean {
    // ...
}

Выбор области видимости зависит от требований к жизненному циклу и состоянию бина в приложении.