Добавить в корзинуПозвонить
Найти в Дзене
Java

✔️ Spring Boot может тормозить сам себя из-за одного неаккуратного @ComponentScan

В Spring Boot не стоит бездумно писать что-то вроде: @ComponentScan("com.mycompany") На первый взгляд удобно: фреймворк сам просканирует весь пакет и найдет нужные компоненты. Но проблема в том, что он может просканировать слишком много. Это увеличивает время classpath scanning, замедляет старт приложения и иногда подтягивает классы, которые вообще не должны были становиться Spring-компонентами. Лучший вариант - полагаться на дефолтное поведение: @SpringBootApplication public class MyApplication { } По умолчанию Spring Boot сканирует только подпакеты того пакета, где лежит MyApplication. Если нужно явно ограничить область сканирования, указывай конкретные подпакеты: @ComponentScan({ "com.mycompany.myapp.product", "com.mycompany.myapp.order" }) Главная мысль простая: @ComponentScan должен быть точным. Чем шире границы сканирования, тем больше лишней работы делает приложение на старте. #SpringBoot #JavaDev #Java #Backend

✔️ Spring Boot может тормозить сам себя из-за одного неаккуратного @ComponentScan

В Spring Boot не стоит бездумно писать что-то вроде:

@ComponentScan("com.mycompany")

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

Это увеличивает время classpath scanning, замедляет старт приложения и иногда подтягивает классы, которые вообще не должны были становиться Spring-компонентами.

Лучший вариант - полагаться на дефолтное поведение:

@SpringBootApplication

public class MyApplication { }

По умолчанию Spring Boot сканирует только подпакеты того пакета, где лежит MyApplication.

Если нужно явно ограничить область сканирования, указывай конкретные подпакеты:

@ComponentScan({

"com.mycompany.myapp.product",

"com.mycompany.myapp.order"

})

Главная мысль простая: @ComponentScan должен быть точным. Чем шире границы сканирования, тем больше лишней работы делает приложение на старте.

#SpringBoot #JavaDev #Java #Backend