설명하다
1. Cglib 에이전트는 하위 클래스 에이전트라고 할 수 있으며, 이는 대상 개체의 기능을 확장하기 위해 메모리에 하위 클래스 개체를 구축합니다.
정적 프록시와 JDK 프록시 모두 인터페이스를 구현하려면 객체가 필요합니다. 때때로 프록시 객체는 단지 단일 객체일 뿐이며 이때 Cglib 프록시를 사용할 수 있습니다.
2. Cglib는 Enhancer를 통해 프록시 클래스를 생성하고 MethodInterceptor 인터페이스를 구현하여 인터셉트 메서드를 구현합니다.
향상된 메소드를 메소드에 추가할 수 있으며 반사 메소드 또는 MethodProxy 상속 클래스를 사용하여 원래 메소드를 호출할 수 있습니다.
예
공개 클래스 TVProxyCglib는 MethodInterceptor를 구현합니다. //대상 객체에 대한 프록시 객체 생성 public Object getProxyInstance(Class c){ //1. 도구 클래스 Enhancer Enhancer = new Enhancer(); //2.부모 클래스를 설정합니다. Enhancer.setSuperclass(c); //3.콜백 함수 설정 Enhancer.setCallback(this); //4. 하위 클래스(프록시 객체)를 만듭니다. return Enhancer.create(); } @보수 public Object Intercept(Object o, Method 메소드, Object[] 객체, MethodProxy methodProxy)는 Throwable {를 던졌습니다. System.out.println("TVProxyFactory 향상...."); 개체 개체 = methodProxy.invokeSuper(o, 개체); 반환 개체; } }
위 내용은 Java에서 Cglib 에이전트를 사용하는 내용인데, 모든 분들께 도움이 되었으면 좋겠습니다.
추가 Java 학습 가이드: 자바 튜토리얼
이 튜토리얼의 운영 환경: Windows 7 시스템, Java 10 버전, DELL G3 컴퓨터.