Какое отличие между аннотациями @ComponentScan и @Component в Spring Framework?
Ответ от нейросети
sobes.tech AI
@Component и @ComponentScan — это аннотации в Spring Framework, связанные с управлением компонентами (бинами).
-
@Component— аннотация, которая помечает класс как компонент Spring. Это значит, что Spring создаст экземпляр этого класса и зарегистрирует его в контексте приложения как bean. Используется для явного указания, что класс должен быть управляем Spring. -
@ComponentScan— аннотация, которая указывает Spring, в каких пакетах искать классы с аннотациями типа@Component,@Service,@Repositoryи т.д. То есть она отвечает за автоматическое сканирование и регистрацию компонентов.
Пример:
@Configuration
@ComponentScan(basePackages = "com.example.app")
public class AppConfig {
// Spring просканирует пакет com.example.app и зарегистрирует все компоненты
}
@Component
public class MyService {
// Этот класс будет автоматически зарегистрирован как bean
}
Итого: @Component — помечает конкретный класс как bean, а @ComponentScan — указывает, где искать такие классы для автоматической регистрации.