Spring Boot и медленные autowire — проверь, не зарыта ли у тебя бомба… — Библиотека Java разработчика — TG.ME

🧠 Spring Boot и медленные autowire — проверь, не зарыта ли у тебя бомба в @Configuration

Есть распространённый анти-паттерн: ты используешь @Configuration и внутри создаёшь бины с @Bean, а в этих методах — инжектишь зависимости через параметры. Всё выглядит красиво и «по фэншую»... но только на первый взгляд.


@Configuration
public class MyConfig {

@Bean
public MyService myService(SomeDep dep) {
return new MyService(dep);
}

@Bean
public SomeDep someDep() {
return new SomeDep();
}
}


⚠️ Проблема: такие методы вызываются при старте контекста, и если SomeDep создаётся долго (например, подтягивает настройки из удалённого конфига, делает init-запрос в БД, или тянет секьюрити-контекст), это тормозит весь старт.

📌 Хуже всего, если ты не подозреваешь об этом: ведь @Bean -методы не видны как "инициализация", и кажется, что контекст тормозит "где-то ещё".

💡 Совет:
- Используй @Lazy в нужных местах, особенно если bean тяжёлый или редко используется.
- Разделяй конфигурацию: отдельно core, отдельно init-heavy.
- Не бойся отказаться от @Configuration в пользу @Component + @Service, если это упрощает понимание.

И главное — профилируй старт. spring-boot-starter-actuator + --debug могут открыть глаза.

📲 Мы в MAX

👉@BookJava
t.me/BookJava/4286Translating to English…
👍4🔥2
July 22, 2026 1.2K 1 11