Назад к вопросам
Senior
5
Как работает аннотация @Lazy под капотом?
Компании, где спрашивали
Octo
Ответ от нейросети
sobes.tech AI
Аннотация @Lazy в Spring используется для отложенной инициализации бинов. Под капотом она работает следующим образом:
- При загрузке контекста Spring не создаёт бин сразу, а вместо этого создаёт прокси-объект.
- Этот прокси откладывает фактическое создание и инициализацию бина до первого обращения к нему.
- Когда приложение впервые запрашивает бин, прокси инициализирует настоящий объект и передаёт управление ему.
Таким образом, @Lazy помогает оптимизировать время запуска приложения и ресурсы, создавая бины только при необходимости.
Пример:
@Component
@Lazy
public class HeavyService {
public HeavyService() {
System.out.println("HeavyService инициализирован");
}
}
В этом примере HeavyService не будет создан при старте контекста, а только при первом вызове из другого компонента.