Rumah  >  Artikel  >  Java  >  Bagaimana untuk menggunakan proksi Cglib dalam java

Bagaimana untuk menggunakan proksi Cglib dalam java

王林
王林ke hadapan
2023-04-30 18:04:071646semak imbas

Penjelasan

1. Proksi Cglib boleh dipanggil proksi subkelas, yang membina objek subkelas dalam ingatan untuk melanjutkan fungsi objek sasaran.

Kedua-dua proksi statik dan proksi JDK memerlukan objek untuk melaksanakan antara muka. Kadangkala objek proksi hanyalah satu objek dan proksi Cglib boleh digunakan pada masa ini.

2. Cglib menjana kelas proksi melalui Enhancer, dan melaksanakan kaedah pintasan dengan melaksanakan antara muka MethodInterceptor.

Kaedah yang dipertingkatkan boleh ditambah pada kaedah dan kaedah asal boleh dipanggil menggunakan kaedah reflektif atau MethodProxy yang diwarisi kelas.

Instance

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;
    }
}

Atas ialah kandungan terperinci Bagaimana untuk menggunakan proksi Cglib dalam java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam