Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Java: bean creation, eager, lazy, scope, conditional

Когда создаётся Spring Bean и как Spring определяет необходимость его создания?

Проверяет знание механизма «ленивой» и «ранней» инициализации Beans.

Короткий ответ

По умолчанию Spring создаёт singleton-бины при старте контекста приложения (eager initialization). Beans с scope="prototype" или помеченные @Lazy инициализируются при первом запросе. Spring определяет, какие Beans создавать, анализируя конфигурацию: сканируемые компоненты (@Component и др.), методы @Bean и импортированные конфигурации.

Длинный ответ

Время создания:

  • Singleton: при ApplicationContext refresh (старте).

  • Prototype: каждый раз при getBean().

  • @Lazy (singleton): отложенная инициализация до первого запроса.

Определение необходимости:

  • Контейнер анализирует зависимости: если бину никто не зависит и он не публикуется через @EventListener, может быть не создан, даже без @Lazy.

Фильтрация бинов:

  • @Conditional, profiles: Beans создаются только при выполнении условий или активных профилях.

Пример:

@Component
@Lazy
public class HeavyBean { ... }

HeavyBean создастся только при первом внедрении или getBean(HeavyBean.class).

Уровень

  • Рейтинг:

    2

  • Сложность:

    5

Навыки

  • Java

    Java

Ключевые слова

#bean creation

#eager

#lazy

#scope

#conditional

Подпишись на Java Developer в телеграм