Sobes.tech
Junior — Middle
82

Spring всегда распознает классы, аннотированные с помощью @Configuration?

Answer from AI

sobes.tech AI

Spring не всегда автоматически распознает классы, аннотированные с помощью @Configuration. Для того чтобы Spring обнаружил такие классы и зарегистрировал их как бины конфигурации, необходимо:

  • Убедиться, что класс находится в пакете, который сканируется компонентным сканером Spring (например, указан в @ComponentScan).
  • Если используется Java-конфигурация, класс с @Configuration должен быть явно указан в контексте или находиться в сканируемом пакете.

Если класс с @Configuration не находится в сканируемом пакете и не зарегистрирован явно, Spring его не распознает. Также важно, чтобы класс был публичным и не был абстрактным.

Пример:

@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}

Чтобы этот класс был распознан, он должен быть либо в пакете, указанном в @ComponentScan, либо зарегистрирован вручную в контексте.