TGViewer
Java | Вопросы собесов Java | Вопросы собесов @easy_java_ru · 11.3K subscribers
Post #35 5.59K
Какие знаешь Bean Scope ?
Спросят с вероятностью 12%

"Bean Scope" (область видимости бина) определяет жизненный цикл и видимость бинов (объектов, управляемых Spring IoC контейнером). Вот основные области видимости бинов:

1️⃣ Singleton

Это область видимости по умолчанию. Spring IoC контейнер создаёт единственный экземпляр бина на весь контейнер. Этот бин кэшируется, и все последующие запросы на получение бина с таким же идентификатором будут возвращать тот же объект.

2️⃣ Prototype

Контейнер создаёт новый экземпляр бина каждый раз, когда он запрашивается. Это полезно, когда вам нужны независимые экземпляры объекта.

3️⃣ Request

Эта область видимости применяется только в веб-приложениях. Бин с областью видимости Request создаётся каждый раз при выполнении HTTP-запроса. Такой бин живёт в пределах одного запроса.

4️⃣ Session

Также используется в веб-приложениях. Бин с областью видимости Session создаётся на время жизни HTTP-сессии. Это означает, что бин связан с конкретной сессией пользователя.

5️⃣ Application

Создаётся на время жизни ServletContext, что означает, что бин существует в пределах всего веб-приложения, а не в пределах одного запроса или сессии.

6️⃣ WebSocket

Живёт в пределах жизненного цикла WebSocket-сессии. Эта область видимости полезна для работы с веб-сокетами в веб-приложениях.

Примеры:
@Component
@Scope("singleton") // Это не обязательно, так как singleton является областью видимости по умолчанию
public class SingletonBean {}

@Component
@Scope("prototype")
public class PrototypeBean {}

@Component
@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class RequestBean {}


Выбор области видимости бина зависит от требуемого жизненного цикла и видимости объекта в приложении. Singleton подходит для глобальных настроек или кэшированных данных, Prototype — для независимых операций, Request и Session — для данных, специфичных для пользователя в веб-приложениях.

➡️ Примеры ответов
➡️ Список всех вопросов на Java Developer

🧩 Идущий | 🔐 Собесы | 🔐 Тестовые
  • 👍 32
  • ❤ 3
More from @easy_java_ru
  1. Oct 12, 2026🤔 Жизненный цикл сервлетов? 1. Загрузка и инициализация (init); 2. Обработка запроса (ser…
  2. Oct 12, 2026🤔 Как остановить поток? Остановить поток в Java можно несколькими способами, но важно пом…
  3. Oct 11, 2026🤔 Какой класс позволяет читать данные из входного байтового потока в формате примитивных…
  4. Oct 11, 2026🤔 Чем отличается where от having ? WHERE и HAVING используются для фильтрации записей, но…
  5. Oct 10, 2026🤔 На основании какой структуры данных реализован ArrayList? ArrayList реализован на базе…
  6. Oct 9, 2026🤔 Что такое «HTML»? HTML (HyperText Markup Language) — это язык разметки, используемый дл…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →