Sobes.tech
Назад к вопросам
Junior — Middle
59

Какое отличие между аннотациями @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 — указывает, где искать такие классы для автоматической регистрации.