课程咨询 :18487146383

  • 动态代理

    发布:昆明Java培训      来源:达内新闻      时间:2016-08-31

  • 昆明Java培训机构的老师今天给大家讲动态代理:

    既然是动态代理模式就不需要UserManagerImplProxy这个代理类了。

    需要声明一个类实现InvocationHandler接口,并定义一个newProxy的方法返回动态代理

    1 package com.dwr.spring.proxy;

    2

    3 import java.lang.reflect.InvocationHandler;

    4 import java.lang.reflect.Method;

    5 import java.lang.reflect.Proxy;

    6

    7 public class SecurityHandler implements InvocationHandler {

    8    private Object targetObject;

    9

    10    public Object newProxy(Object targetObject){

    11        this.targetObject = targetObject;

    12        //返回动态代理

    13        return Proxy.newProxyInstance(targetObject.getClass().getClassLoader(),targetObject.getClass().getInterfaces(),this);

    14    }

    15

    16

    17    public void checkSecurity(){

    18        System.out.println("--------UserManagerImpl.checkSecurity()----------");

    19    }

    20

    21    @Override

    22    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

    23        checkSecurity();

    24        Object ret = null;

    25

    26        try {

    27            //调用目标对象的真实方法,将返回值保存在ret中

    28            ret = method.invoke(this.targetObject, args);

    29        } catch (Exception e){

    30            e.printStackTrace();

    31        }

    32        return ret;

    33    }

    34 }

    了解详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

上一篇:Spring笔记--代理模式

下一篇:客户端测试

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:7月31日

Java--零基础业余班

Java--零基础业余班

开班日期:7月31日

Java--周末提升班

Java--周末提升班

开班日期:7月31日

Java--零基础周末班

Java--零基础周末班

开班日期:7月31日

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:18487146383    全国服务监督电话:400-111-8989
  • 服务邮箱 tousu@tedu.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56