您的位置:首页 > 编程语言 > Java开发

Jdk提供的动态代理示例

2015-07-09 23:25 357 查看
package com.jiaoyiping.util.demo;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

/**
* Created with IntelliJ IDEA.
* User: 焦一平
* Date: 2015/7/8
* Time: 10:54
* To change this template use File | Settings | File Templates.
* JDK动态代理示例
*/
public class JDKDynamicProxyDemo {
public static void main(String[] args) {
Business business = new BusinessImpl();
Business proxy = (Business)Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), new Class[]{Business.class}, new BusinessProxy(business));
proxy.doBusiness();
}
}

interface Business {
void doBusiness();
}

class BusinessImpl implements Business {

@Override
public void doBusiness() {
System.out.println("执行业务方法");
}
}

class BusinessProxy implements InvocationHandler {
private Business business;

public BusinessProxy(Business business) {
this.business = business;
}

@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("before invoke");
Object result = method.invoke(business, args);
System.out.println("after invoke");
return result;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: