Назад к вопросам
Junior
73
questionbank
Что делает аннотация @ComponentScan?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
@ComponentScan сканирует указанные пакеты для поиска компонентов Spring (классы, помеченные @Component, @Service, @Repository, @Controller и другие аннотации Spring). Найденные компоненты регистрируются в контексте приложения как Spring Beans.
Основные свойства:
basePackages: Массив строк, указывающий пакеты для сканирования. Если не указан, сканируется пакет класса, аннотированного @ComponentScan, и его подпакеты.basePackageClasses: Массив классов. Пакеты этих классов используются для сканирования.includeFilters: Определяет компоненты, которые должны быть включены в сканирование.excludeFilters: Определяет компоненты, которые должны быть исключены из сканирования.
Пример использования:
// В конфигурационном классе
@Configuration
@ComponentScan(basePackages = "com.example.myapp.services") // Сканирует только пакет com.example.myapp.services
public class AppConfig {
// ...
}
// В главном классе Spring Boot
@SpringBootApplication // Эта аннотация включает в себя @ComponentScan
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}