Ответ
Spring, в первую очередь, ориентируется на тип (класс/интерфейс) зависимости. Если найдено несколько бинов подходящего типа, требуется дополнительная квалификация.
Стратегии разрешения неоднозначности:
@Qualifier("имя_бина")— явное указание имени требуемого бина.@Autowired @Qualifier("mysqlRepository") private UserRepository repository;@Primary— пометка одного бина как предпочтительного среди нескольких того же типа.- Имя поля — если имя поля переменной совпадает с именем одного из бинов-кандидатов.
Best Practice: Всегда объявляйте зависимости через интерфейсы. Конкретную реализацию определяйте в конфигурации с помощью @Qualifier или @Primary, что делает код гибким и тестируемым.