Java 학습의 동적 프록시 편
Java 학습의 동적 프록시 편
0x00 선언
뒤의 빈틈 연구 학습에서 반드시 알아야 할 몇 가지 지식점.반사 메커니즘과 동적 에이전트 메커니즘.반사에 관해서는 앞에서 이미 말했으니, 여기서는 더 이상 군말을 하지 않겠다.
0x01 동적 에이전트
여기서 먼저 동적 에이전트의 정의를 말해 봅시다.
동적 에이전트는 대상 대상에게 에이전트 대상을 제공하고 에이전트 대상이 대상 대상에 대한 인용을 제어합니다.
([수동 익살] 사실 동적 대리인은 중개상이다. 간접적으로 물건을 고객에게 보내지만 그 전에 반드시 차액을 벌어야 한다)
우리
에서 동적 에이전트를 사용하는 주요 목적은
이다.여기에 몇 가지 개념을 보급한다.
1. :
2. :
3. : ,
우리는 정상적인 상황에서 실제 대상 호출 방법을 사용하는 코드를 쓸 것이다.
컴퓨터 인터페이스 코드:
package com.test.web.proxy;
public interface computer {
public String method(double money);
String show();
}
lenveo 클래스 코드:
package com.test.web.proxy;
public class lenveo implements computer{
@Override
public String method(double money) {
System.out.println(" +"+money+" ");
return " ";
}
@Override
public String show() {
System.out.println(" ");
return " ";
}
}
테스트 클래스 코드:
package com.test.web.proxy;
public class test1 {
public static void main(String[] args) {
lenveo lenveo = new lenveo();
String method = lenveo.method(8000);
String show = lenveo.show();
System.out.println(show);
System.out.println(method);
}
}
이것은 정상적인 코드입니다. 만약 우리가 다른 종류의 코드를 바꾸지 않은 상황에서 그를 강화해야 한다면 동적 에이전트를 사용할 수 있습니다.
다음은 동적 에이전트의 실현 절차를 살펴보고 절차에 따라 동적 에이전트를 실현한다.
package com.test.web.proxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class test {
public static void main(String[] args) {
lenveo lenveo = new lenveo();
// //
computer proxy = (computer) Proxy.newProxyInstance(lenveo.getClass().getClassLoader(), lenveo.getClass().getInterfaces(), new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("invoke ");
Object obj = method.invoke(lenveo, args);
return obj;
}
});
String method = proxy.method(3000);
System.out.println(method);
}
}
여기 프록시.newProxyInstance 메서드는 다음과 같은 세 가지 매개변수를 전달합니다.
1. :new .getClass().getClassLoader()
2. :new .getClass().getInterfaces()
3. :new InvocationHandler()
동적 에이전트를 사용하면 에이전트 대상이 임의의 방법을 호출하고 에이전트의 invoke 방법이 실행됩니다.
invoke 매개 변수:
1.proxy:
2.method: ,
3.args:
0x02 끝
자, 또 한 편의 문장이 완성되었으니 동적 대리 메커니즘이 비교적 중요하다.여기도 간단한 동적 에이전트 내용일 뿐입니다. 시간이 나면 동적 에이전트를 업데이트하겠습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.