Wiem, że to stare pytanie, ale nie znalazłem odpowiedzi, które rozwiązałyby ten problem, więc podam moje rozwiązanie.
Uwaga: wydawało mi się, że przyczyną problemu może być to , ale mój problem nie był związany z dwukrotnym wdrożeniem tego samego interfejsu. Używanie @Qualitier
sprawiło, że mój problem zniknął, ale był to bandaż, a nie właściwe rozwiązanie, więc nie poprzestałem na tym.
TŁO
Mam za zadanie utrzymanie starego projektu, który przeszedł przez różne wersje Spring i został zaktualizowany tylko dla oddzielnych modułów, więc rzeczy wymagały co najmniej refaktoryzacji. Początkowo miałem problem z duplikatem fasoli i majstrowanie przy różnych rzeczach zmieniało problem między wydaniem OP a problemem zduplikowanej fasoli, mimo że był tylko jeden ziarno; nawigacja do duplikatów fasoli zawsze prowadziła do tej samej klasy.
PROBLEM
Problem był obecny w @Repository
klasie, która była @Autowired
w @Service
klasie, która również miała @ComponentScan
adnotację. Zauważyłem, że miałem również sprężynę, application-config.xml
która robiła context:component-scan
na podstawowym pakiecie, co moim zdaniem było oryginalnym podejściem w starszych wersjach Springa. Byłem w trakcie tworzenia nowego oddziału, biorąc części starego i nowszego oddziału w projekcie wsparcia, który był wykorzystywany w różnych projektach, które były rozwijane przez kilka lat i dlatego był taki mix-and-match metodologii.
PROSTE ROZWIĄZANIE
Ponieważ bardziej nowoczesne podejście do korzystania @ComponentScan
było już zaimplementowane, po prostu usunąłem application-config.xml
i problem został rozwiązany.