Этот вопрос уже задан здесь по следующей ссылке.Весна Зависимость впрыска с использованием интерфейса с более чем одной реализацией
Spring: Why do we autowire the interface and not the implemented class?
То, что я хочу знать, если мы используем @Qualifier
впрыснуть боб, чем то, что является целью автоматического связывания интерфейса ?? Почему бы нам не автоподключить один и тот же класс реализации?
Путем автосогласования интерфейса мы хотим использовать полиморфизм во время выполнения, но это не достигается, если мы будем следовать подходу @Qualifier
. Пожалуйста, предложите мне стандартный способ.
Ниже приведен простой код, если я делаю это без весны. Интересно, как весна будет вводить экземпляр PrepaidPaymentService и экземпляр PostPaidPaymentService?
public interface PaymentService{
public void processPayment();
}
public class PrepaidPaymentService implements PaymentService{
public void processPayment(){
System.out.println("Its Prepaid Payment Service");
}
}
public class PostPaidPaymentService implements PaymentService{
public void processPayment(){
System.out.println("Its Postpaid Payment Service");
}
}
public class Test {
public PaymentService service;
public static void main(String[] args) {
Test test = new Test();
int i = 1;
if(i ==1){
test.setService(new PrepaidPaymentService());
test.service.processPayment();
}
i = 2;
if(i == 2){
test.setService(new PostPaidPaymentService());
test.service.processPayment();
}
}
public void setService(PaymentService service){
this.service = service;
}
}
Какое условие принимает класс реализации? – shazinltc