자바 는 서로 다른 매개 변수 에 따라 서로 다른 구현 클래스 작업 을 호출 합 니 다.
우선 인 터 페 이 스 를 써 야 합 니 다.
그리고 당신 의 PayService 실현 클래스 EcpssPayService(제3자 인터페이스 실현 클래스)와 ReapalPayService(제3자 인터페이스 실현 클래스)를 적어 서 몇 가지 주의 하 세 요.(주 해 는 반드시 따라 가 야 합 니 다)
자,이제 도구 류 를 쓸 수 있 습 니 다.SpringBeanUtil.
다 쓴 후에(ok 완 공 했 습 니 다)다음 에 Controller 에서 호출 할 수 있 습 니 다.
그럼 Reaplaservice 류 를 사용 하지 않 고 ecpss 로 전 달 됩 니 다.그러면 Ecpss PayService!)를 호출 합 니 다.
마지막 으로 말 하지만 당신 의 실현 클래스 는 스프링 이 스캐너 패 키 지 를 불 러 올 때 스 캔 할 수 있 을 것 입 니 다.그렇지 않 으 면 당신 은 두 앙 입 니 다.만약 에 클래스 가 정의 되 지 않 은 소년 이 폭발한다 면 당신 은 아직 젊다 는 것 을 설명 할 수 있 습 니 다.
component-scan 에서 두 개의 실현 클래스 의 가방 을 스 캔 한 경로 over!!!!
보충 지식:자바 류 에서 서로 다른 인터페이스의 동명 방법 을 실현 할 때 이 방법 은 어느 인터페이스 에 속 합 니까?
이러한 상황 이 존재 한다.한 가지 유형 은 두 개의 인 터 페 이 스 를 실현 했다.이 두 인터페이스 에서 같은 방법(동명 동참)이 있다.그러면 유형 중의 이 실현 방법 은 어느 인터페이스 에 속 하 는가?
public interface InterfaceA {
void method();
void methodA();
}
public interface InterfaceB {
void method();
void methodB();
}
public class Subject implements InterfaceA, InterfaceB {
@Override
public void method() {
}
@Override
public void methodB() {
}
@Override
public void methodA() {
}
}
Subject 클래스 는 InterfaceA 와 InterfaceB 두 개의 인 터 페 이 스 를 실현 하 는 방법 입 니 다.그 중에서 method 는 InterfaceA 와 InterfaceB 가 공유 하 는 똑 같은 방법 입 니 다.그러면 Subject 클래스 에서 이 루어 진 이 방법 은 어느 인터페이스 에 속 합 니까?정 답 은 인터페이스 A 이자 인터페이스 B 인 데 무슨 뜻 이에 요?즉,이때 의 Subject 클래스 는 인터페이스 A 로 그 중의 method 방법 을 사용 할 수도 있 고 인터페이스 B 로 그 중의 method 방법 을 사용 할 수도 있다.
자바 가 implements 에 대한 요 구 는 인터페이스 에서 설명 하 는 방법 이 라면 실현 류 에서 반드시 이 를 실현 해 야 한 다 는 것 이다.Subject 류 만 보면 method 와 methodA 두 가지 방법 이 있 기 때문에 InterfaceA 인터페이스의 모든 방법의 실현 류 를 실현 하 는 동시에 가면 에는 method 와 methodB 두 가지 방법 이 있다.그래서 인터페이스 B 인터페이스의 모든 방법 을 실현 하 는 실현 류 이기 도 하 다.
따라서 Subject 클래스 를 사용 할 때 인터페이스 A 라 고 생각하면 인터페이스 A 입 니 다.인터페이스 B 라면 인터페이스 B 입 니 다.
그래서 아래 처럼 사용 할 수 있 습 니 다.전혀 문제 가 없습니다.
public class Main {
public static void main(String[] args) {
// InterfaceA , InterfaceA
InterfaceA interfaceA = new Subject();
interfaceA.method();
interfaceA.methodA();
test(interfaceA);
// InterfaceB , InterfaceB
InterfaceB interfaceB = new Subject();
interfaceB.method();
interfaceB.methodB();
//
Subject subject = new Subject();
subject.myMethod();
// InterfaceA
interfaceA = subject;
interfaceA.method();
interfaceA.methodA();
// InterfaceA InterfaceB
interfaceB = subject;
interfaceB.method();
interfaceB.methodB();
// InterfaceB InterfaceA
interfaceA = (InterfaceA) interfaceB;
interfaceA.method();
interfaceA.methodA();
//... ...
}
private static void test(InterfaceA interfaceA){
// InterfaceA implements InterfaceB
// InterfaceB
InterfaceB interfaceB = (InterfaceB) interfaceA;
interfaceB.method();
interfaceB.methodB();
}
}
이상 의 이 자바 는 서로 다른 매개 변수 에 따라 서로 다른 실현 류 조작 을 호출 하 는 것 이 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 여러분 들 이 저 희 를 많이 지지 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.