1、jdk代理
创建代理对象
classA a = Proxy.newProxyInstance(Factory.class.getClassLoader(), new Class[]{Superclass}, new ( ?classB implements classA ) handlerA implements InvocationHandler);
前提是被代理的对象必须是实现了某个接口,然后才能进行代理 classB 实现classA的接口
主要开发的内容在于 编写handler 实现需要代理的内容
核心对象 通过 jdk的类加载器(Factory.class.getClassLoader())进行代理
2、cglib代理
 Enhancer enhancer = new Enhancer();
        enhancer.setSuperclass(Superclass);
        enhancer.setCallback(new InterceptorB  implements MethodInterceptor);
        //动态生成代理对象
        return enhancer.create();
3、javassist
ProxyFactory proxyFactory = new ProxyFactory();
        // 设置需要创建子类的父类
        proxyFactory.setSuperclass(clazz);
proxyFactory.setHandler(new InterceptorB implements MethodHandler)
proxyFactory.createClass().newInstance()
                    
                

                
            
        
浙公网安备 33010602011771号