Вопрос проверяет понимание Java-конфигурации Spring и механизма поиска бинов.
@Configuration обозначает класс как источник конфигурации Spring.@ComponentScan указывает, какие пакеты нужно сканировать для поиска бинов.
Вместе они позволяют полностью отказаться от XML-конфигурации.
Spring использует их для построения контекста приложения.
Это основа современной конфигурации Spring.
@Configuration@Configuration сообщает Spring, что класс:
содержит определения бинов
используется для конфигурации контекста
@Configuration
class AppConfig {
@Bean
UserService userService() {
return new UserService();
}
}
Особенность:
методы @Bean вызываются через прокси
гарантируется singleton-поведение
@ComponentScan@ComponentScan указывает Spring:
какие пакеты сканировать
где искать @Component, @Service, @Repository
@ComponentScan("com.example.app")
Обычно используется связка:
@Configuration — источник конфигурации
@ComponentScan — автоматическое обнаружение бинов
В Spring Boot чаще всего:
используется @SpringBootApplication
она уже включает @ComponentScan
@Configuration и @ComponentScan — фундамент Java-based конфигурации Spring. Они определяют, что и откуда попадёт в контейнер.