Найти в Дзене
Java

🖥 Как ускорить Spring Boot при старте: spring-context-indexer

🖥 Как ускорить Spring Boot при старте: spring-context-indexer Как вы знаете, при старте Spring Boot-приложения много времени уходит на classpath scanning. Даже если вы используете @ComponentScan, Spring всё равно перебирает кучу классов в поиске бин-кандидатов. Это рефлексивно и медленно. 📌 Есть способ это оптимизировать — spring-context-indexer. 🔧 Что делать 1. Добавьте зависимость в pom.xml: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-indexer</artifactId> <version>6.1.3</version> <!-- актуальная для Spring Boot 3 --> <optional>true</optional> </dependency> 2. Всё! Spring Boot на этапе компиляции сгенерирует индекс классов с аннотациями (@Component, @Service, @Repository, и т.п.) в META-INF/spring.components. 3. При старте приложения Spring сначала смотрит в индекс, а не сканирует classpath целиком. 💡 Полезно, если: - У вас много модулей; - Вы используете fat JAR; - Приложение долго стартует и важна скорость. ⚠️ Важно - Работает только

🖥 Как ускорить Spring Boot при старте: spring-context-indexer

Как вы знаете, при старте Spring Boot-приложения много времени уходит на classpath scanning. Даже если вы используете @ComponentScan, Spring всё равно перебирает кучу классов в поиске бин-кандидатов. Это рефлексивно и медленно.

📌 Есть способ это оптимизировать — spring-context-indexer.

🔧 Что делать

1. Добавьте зависимость в pom.xml:

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context-indexer</artifactId>

<version>6.1.3</version> <!-- актуальная для Spring Boot 3 -->

<optional>true</optional>

</dependency>

2. Всё! Spring Boot на этапе компиляции сгенерирует индекс классов с аннотациями (@Component, @Service, @Repository, и т.п.) в META-INF/spring.components.

3. При старте приложения Spring сначала смотрит в индекс, а не сканирует classpath целиком.

💡 Полезно, если:

- У вас много модулей;

- Вы используете fat JAR;

- Приложение долго стартует и важна скорость.

⚠️ Важно

- Работает только с аннотациями Spring, не с кастомными;

- Не забудьте включить annotation processing в IDE (особенно в IntelliJ: Settings → Build, Execution, Deployment → Compiler → Annotation Processors).

📊 Профит: в крупных проектах - до 30–50% ускорения старта.

@javarush