TGViewer
Java Geek Java Geek @java_geek · 2.37K subscribers
Post #470 356
🧠 Ленивая инициализация @Component в Spring Boot

По умолчанию Spring инициализирует все бины при старте приложения. Это удобно, но может замедлить запуск, особенно если есть тяжёлые компоненты — например, коннекторы к внешним сервисам, парсеры, или тяжёлые кэши.

📌 Решение — использовать ленивую инициализацию (@Lazy):


@Component
@Lazy
public class HeavyComponent {
public HeavyComponent() {
System.out.println("HeavyComponent инициализирован");
}
}


Теперь бин будет создан только при первом обращении.

Можно также внедрять лениво:


@Component
public class SomeService {
private final HeavyComponent heavy;

public SomeService(@Lazy HeavyComponent heavy) {
this.heavy = heavy;
}
}


💡 Если у вас много таких компонентов — можно включить ленивую инициализацию глобально:


spring:
main:
lazy-initialization: true


⚠️ Осторожно: это может скрыть ошибки конфигурации до первого использования бина, что усложняет отладку. Используйте осознанно.

Идеально подходит для:
— микросервисов с быстрым стартом
— CLI-инструментов на Spring Boot
— задач с heavy startup logic

👉 @java_geek
  • 👍 3
More from @java_geek
  1. Sep 24, 2026Что такое стек-трейс? Стек-трейс (stack trace) представляет собой список вызовов методов в…
  2. Sep 17, 2026Как перебрать элементы LinkedList в обратном порядке, не используя медленный get(index)? Д…
  3. Sep 15, 2026Array vs ArrayList Выбор между Array (стандартным Java-массивом) и ArrayList зависит от сп…
  4. Sep 11, 2026Какова цель ключевого слова final, когда оно используется с переменной? Ключевое слово fin…
  5. Sep 9, 2026☕ Java Tip: Как работает var в Java С версии Java 10 появился ключевое слово var. Оно упро…
  6. Sep 7, 2026Что такое перегрузка методов в Java? Перегрузка методов — это мощный приём, который позвол…
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 →