Вы используете bean-компоненты без имен, так что Spring попытается придумать имя, это имя может основываться на аннотации @Component, которую вы, вероятно, используете в своем классе, но это также может быть вербальная версия вашего неквалифицированное имя класса вашего компонента (в обоих случаях они получатся равными, и это приведет к возражению Spring).
Кроме того, кажется, что вы смешиваете сканирование компонентов и конфигурацию xml таким образом, который кажется мне немного странным.
Есть много выходов из этого, но наиболее чисто вы бы использовали только один компонент, реализующий контракт, который вы пытаетесь выполнить. Если вам нужны разные реализации, вы должны дать им разные и более различительные имена:
<bean id="jpaUserRepository" class="..JpaUserRepository"/>
Это даст вам более полезное ведение журнала, даже если имена бинов никогда не используются, потому что вы полагаетесь на автоматическое подключение.