Khi có nhiều bean cùng type, Spring không biết inject cái nào → ambiguity error lúc startup. Hai cách phân biệt:
@Primary— đặt trên 1 bean làm default khi có nhiều candidate (vd impl production).@Qualifier("beanName")— đặt tại điểm inject (constructor param), chỉ định đích danh bean theo tên; ghi đè@Primary.
Chọn: 1 bean là "default hợp lý" cho đa số nơi dùng → @Primary; điểm inject cụ thể cần bean khác → @Qualifier. Kết hợp @Profile khi muốn switch impl theo môi trường thay vì theo điểm inject.