🧠 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 в нужн Configuration в пользу @ Component + @ Service, если это упрощает понимание.

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

👉 @BookJava
Просмотры: 583
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти