Tôi biết đây là một câu hỏi cũ, nhưng tôi chưa tìm thấy bất kỳ câu trả lời nào giải quyết được vấn đề này cho tôi, vì vậy tôi sẽ cung cấp giải pháp của mình.
Lưu ý: Tôi nghĩ vấn đề có thể là do điều này , nhưng vấn đề của tôi không liên quan đến việc triển khai cùng một giao diện hai lần. Việc sử dụng @Qualitier
đã làm cho vấn đề của tôi biến mất, nhưng đó là một miếng băng và không phải là một giải pháp thích hợp nên tôi không giải quyết vấn đề đó.
LÝ LỊCH
Tôi được giao nhiệm vụ duy trì một dự án cũ đã trải qua các phiên bản khác nhau của mùa xuân và chỉ được cập nhật cho các mô-đun riêng biệt, vì vậy ít nhất mọi thứ cần phải cấu trúc lại. Ban đầu tôi đã nhận được vấn đề đậu trùng lặp và mày mò với những thứ đã thay đổi vấn đề qua lại giữa vấn đề của OP và vấn đề trùng lặp bean mặc dù chỉ có một bean; điều hướng đến các bean trùng lặp luôn đi cùng một lớp.
VẤN ĐỀ
Sự cố xuất hiện trên một @Repository
lớp nằm @Autowired
trong một @Service
lớp cũng có @ComponentScan
chú thích. Tôi nhận thấy rằng tôi cũng có một mùa xuân application-config.xml
đang thực hiện context:component-scan
trên gói cơ sở, mà tôi tin rằng đó là cách tiếp cận ban đầu trong các phiên bản cũ hơn của Spring. Tôi đang trong quá trình tạo ra một chi nhánh mới bằng cách lấy các phần của một chi nhánh cũ và một chi nhánh mới hơn trong một dự án hỗ trợ được sử dụng trong các dự án khác nhau đã được phát triển trong vài năm và đó là lý do tại sao lại có sự kết hợp như vậy phương pháp luận.
GIẢI PHÁP ĐƠN GIẢN
Vì cách tiếp cận sử dụng hiện đại hơn @ComponentScan
đã được triển khai, tôi chỉ cần gỡ bỏ application-config.xml
và vấn đề đã được giải quyết.