Разница между аннотацией @Qualifier и @Primary заключается в их назначении:
- @Qualifier используется для разрешения неоднозначности, когда в контексте приложения Spring присутствует несколько бинов одного типа. www.javaguides.net Она позволяет указать конкретный бин для внедрения с помощью значения квалификатора. www.javaguides.net
- @Primary указывает бин по умолчанию, когда присутствует несколько бинов одного типа. www.javaguides.net Если несколько бинов имеют право на автоматическое подключение, и ни один из них явно не указан с помощью @Qualifier, то бин, отмеченный @Primary, будет выбран по умолчанию. www.javaguides.net
Таким образом, @Qualifier указывает конкретный компонент для автоматического подключения, когда есть несколько кандидатов, а @Primary определяет бин по умолчанию, когда не указан квалификатор. stackoverflow.com