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