Sobes.tech
Назад к вопросам
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 {
    // Этот класс будет автоматически зарегистрирован как бин
}