Встречается на собеседованиях • сегодня

В чем разница между разными Scope Bean

В Spring есть несколько областей видимости (scope) бинов:

  1. Singleton (по умолчанию) - один экземпляр на весь контекст приложения.
  2. Prototype - новый экземпляр при каждом запросе.
  3. Request - один экземпляр на HTTP-запрос (только для веб).
  4. Session - один экземпляр на HTTP-сессию (только для веб).
  5. Application - аналогично Singleton, но в контексте ServletContext.
  6. WebSocket - один экземпляр на WebSocket-сессию.

Пример объявления scope:

java
@Bean
@Scope("prototype")
public MyBean myBean() {
    return new MyBean();
}

Ключевые отличия:

  • Singleton создается при старте контекста, Prototype - лениво
  • Singleton потокобезопасен только если stateless или синхронизирован
  • Prototype требует ручного управления жизненным циклом
  • Request/Session требуют веб-контекста и проксирования (@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS))
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы