Проверяет знание механизма «ленивой» и «ранней» инициализации 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).