Explanation
1. Cglib 프록시는 하위 클래스 프록시라고 할 수 있으며, 이는 대상 개체의 기능을 확장하기 위해 메모리에 하위 클래스 개체를 구축합니다.
정적 프록시와 JDK 프록시 모두 인터페이스를 구현하려면 개체가 필요합니다. 때때로 프록시 객체는 단지 단일 객체일 뿐이며 이때 Cglib 프록시를 사용할 수 있습니다.
2. Cglib는 Enhancer를 통해 프록시 클래스를 생성하고 MethodInterceptor 인터페이스를 구현하여 인터셉트 메서드를 구현합니다.
향상된 메서드를 메서드에 추가할 수 있으며 반사 메서드 또는 MethodProxy 상속 클래스를 사용하여 원래 메서드를 호출할 수 있습니다.
인스턴스
public class TVProxyCglib implements MethodInterceptor { //给目标对象创建一个代理对象 public Object getProxyInstance(Class c){ //1.工具类 Enhancer enhancer = new Enhancer(); //2.设置父类 enhancer.setSuperclass(c); //3.设置回调函数 enhancer.setCallback(this); //4.创建子类(代理对象) return enhancer.create(); } @Override public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable { System.out.println("TVProxyFactory enhancement....."); Object object = methodProxy.invokeSuper(o, objects); return object; } }
위 내용은 Java에서 Cglib 프록시를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!