Java 프록시에는 jdk 동적 프록시와 cglib 프록시가 포함됩니다. 여기서는 jdk 동적 프록시에 대해서만 설명합니다. JDK 동적 프록시는 주로 Java 반사 메커니즘(즉, java.lang.reflect 패키지)을 사용합니다.
원칙은 다음과 같습니다. (가수와 매니저는 예시입니다.)
다음과 같은 공개 인터페이스를 설정하십시오. 가수 공개 인터페이스 가수;
특정 클래스를 사용하여 인터페이스를 구현합니다. 예를 들어 Jay Chou는 가수이므로 Singer 클래스를 구현하고 MySinger 클래스는 Singer를 구현합니다.
여기에 브로커인 에이전트 클래스를 생성합니다. 그는 InvocationHandler 클래스를 구현하고 호출 메소드를 다시 작성하여 어떤 일이 발생하고 Jay Chou(구체 클래스)를 찾으려면 먼저 브로커(에이전트 클래스)로 이동해야 합니다. )를 처리하기 위해 상담원이 귀하와 만날지 여부(이 방법을 실행할지 여부)를 결정하고 있습니다.
1. 가수 인터페이스
공개 추상 무효 노래();
공개 추상 문자열 s();
}
//묶다
공용 객체 바인드(객체 대상){
this.target=대상;
//프록시를 다시 넣어야 함
return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this);
}
//다시
공용 객체 호출(객체 프록시, 메소드 메소드, Object[] args)
Throwable {를 던집니다.
개체 o =null;
System.out.println("트랜잭션 시작");
System.out.println("판사 권한");
o = method.invoke(target, args);//실행 방법
System.out.println("거래 종료");
반환 오;
}
}