美文网首页
代理对象2

代理对象2

作者: 小竹猫 | 来源:发表于2018-12-22 18:47 被阅读0次

实现接口,创建代理类

public class CglibProxy implements MethodInterceptor {
    //生命一个被代理对象
    private Object obj;
    
    public void bind(Object obj){
        this.obj=obj;
    }
    
    //创建一个方法,返回代理对象
    public Object getProxy(){
        //创建Enhancer对象
        Enhancer enhancer = new Enhancer();
        //被代理对象
        enhancer.setSuperclass(obj.getClass());
        //设置回调
        enhancer.setCallback(this);
        //返回代理对象.enhancer.create();
        return enhancer.create();
    }

    @Override
    public Object intercept(Object sb, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {
        // TODO Auto-generated method stub
        check();
        beforeLogging();
        Object returnValue = method.invoke(obj, args);
        afterLoggging();
        return returnValue;
    }
    
    //不重复的造轮子 。

        public void beforeLogging(){
            System.out.println("事前日志 。");
        }
        public void afterLoggging(){
            System.out.println("事后日志。");
        }
        public void check(){
            System.out.println("安全检查。");
        }
}

Person类

public class Person {
    
    //吃之前   检查安全性  , 前置日志  核心吃业务   后置日志 。
    
    public void eat(){
        
        System.out.println("吃 。。。");
        
    }
}

创建主方法

public class MainTest {
    public static void main(String[] args) {
        CglibProxy cp = new CglibProxy();
        
        cp.bind(new Person());
        Object proxy = cp.getProxy();//拿到代理对象
        Person p = (Person) proxy;
        p.eat();
    }
}

输出结果:

安全检查。
事前日志 。
吃 。。。
事后日志。

相关文章

  • java动态代理

    代理模式 概念 1.真实对象:被代理的对象 2,代理对象: 3,代理模式:代理对象代理真实对象,达...

  • 大连滕泰科技学习笔记2020-05-07

    1,静态代理模式 2,动态代理(实现方式JDK自带的Proxy代理类) 2,1 代理对象2,2 要代理的目标对象2...

  • 代理设计模式

    代理设计模式:1.真实对象2.代理对象3.抽象对象(抽象功能) 代理设计模式优点:1.保护真实对象2.让真实对象职...

  • Java 实现AOP

    1 根据class名获取代理对象,clazz.newInstance(); 设置代理目标和代理对象。 2 代理...

  • 代理对象2

    实现接口,创建代理类 Person类 创建主方法 输出结果:

  • Block 跳转页面A->B->C C->

    1,首先定义代理(定义block)。 2触发代理()触发block, 3,执行代理的对象(执行block的对象) ...

  • 代理与通知

    代理 代理设计模式的作用: 1.A对象监听B对象的一些行为,A成为B的代理 2.B对象想告诉A对象一些事...

  • Android插件化架构浅析实现方法

    Java动态代理 1,什么是代理模式?代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。 2,代理模...

  • iOS设计模式-代理模式- Swift

    代理模式-原理案例 1、代理模式的定义为其他对象提供一种代理,控制对这个对象的访问 2、代理模式的角色划分,代理主...

  • delegate

    代理 代理设计模式的作用: 1.A对象监听B对象的一些行为,A成为B的代理 2.B对象想告诉A对象一些事情,A成为...

网友评论

      本文标题:代理对象2

      本文链接:https://www.haomeiwen.com/subject/qmcvkqtx.html