Обычно все бины поднимаются на старте приложения. Это может тормозить загрузку, особенно если есть тяжёлые компоненты (например, коннекторы к БД или внешним сервисам).
📌 Как включить ленивую инициализацию всех бинов:
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(MyApplication.class);
app.setLazyInitialization(true);
app.run(args);
}
}
Или через
application.properties:
spring.main.lazy-initialization=true
💡 Тогда бины будут создаваться только при первом использовании, а не при старте.
⚠️ Когда стоит использовать:
- Для ускорения старта больших приложений.
- При разработке — быстрее ребилд и перезапуск.
⚠️ Когда лучше избегать:
- В продакшене, где важно заранее поймать ошибки конфигурации.
- Когда нужна предсказуемость старта и работы приложения.
🧠 Можно включать ленивую инициализацию точечно:
@Component
@Lazy
public class HeavyService {
// Поднимется только когда реально понадобится
}
👉 @java_geek