Sobes.tech
Junior — Middle

Czy możesz wyjaśnić cel i użycie adnotacji Scope w kontekście Spring?

sobes.tech AI

Odpowiedź od AI

Аннотация @Scope в Spring используется для определения области видимости (scope) бина — то есть, как долго существует экземпляр бина и как он создаётся.

Основные области видимости:

  • singleton (по умолчанию) — один экземпляр бина создаётся на весь контекст Spring.
  • prototype — новый экземпляр создаётся при каждом запросе бина.
  • request — бин живёт в рамках одного HTTP-запроса (для веб-приложений).
  • session — бин живёт в рамках HTTP-сессии.
  • application — бин живёт в рамках ServletContext.

Пример использования:

@Component
@Scope("prototype")
public class MyBean {
    // каждый вызов getBean(MyBean.class) создаст новый объект
}

Таким образом, @Scope позволяет управлять жизненным циклом и областью видимости компонентов в приложении Spring.