Некоторые причины возникновения ошибки No qualifying bean of type в Spring:
- Попытка внедрить неопределённый bean-компонент. 12 Например, если компонент определён в пакете, который не сканируется Spring. 1
- Наличие двух определений компонента в контексте вместо одного. 1 Например, если интерфейс реализован двумя bean-компонентами, Spring не будет знать, какую из двух реализаций внедрить. 1
- Отсутствие объявления самого bean-компонента. 3 Например, если его забыли объявить в конфигурации. 3
Для решения проблемы можно попробовать следующее:
- Проверить сканирование компонентов. 4 Нужно убедиться, что класс, который нужно внедрить, аннотирован @Component или другой стереотипной аннотацией, например @Service, @Repository или @Controller. 4 Также следует проверить, что аннотация @SpringBootApplication или @ComponentScan находится в нужном пакете для сканирования пакета, содержащего компоненты. 4
- Явно определить bean-компонент. 4 Если автоматическое сканирование не находит компонент, его можно явно определить в классе конфигурации. 4
- Использовать квалификатор для нескольких bean-компонентов. 4 Если в контексте Spring есть несколько bean-компонентов одного типа, можно использовать аннотацию @Qualifier, чтобы указать, какой компонент внедрить. 4