jdk动态代理和cblib代理学习

[color=red]jdk动态代理 解释-InvocationHandler[/color]
[url]http://hi.baidu.com/huahua035/blog/item/6e5bff135b8412c2c3fd78b5.html[/url]
[color=red]jdk动态代理 例子[/color]
[url]http://www.blogjava.net/DoubleJ/archive/2008/03/04/183796.html[/url]
[color=red]cglib代理例子[/color]
[url]http://carterslam.iteye.com/blog/541009[/url]
[color=red]cglib代理原理解释及例子[/color]
[url]http://hnicypb.iteye.com/blog/263841[/url]
[color=red]cglib api文档[/color]
[url]http://cglib.sourceforge.net/apidocs/net/sf/cglib/proxy/MethodProxy.html[/url]
[color=red]asm框架了解[/color]
[url]http://www.ibm.com/developerworks/cn/java/j-lo-asm30/index.html[/url]

[color=red]jdk动态代理例子[/color]
package cun.InvocationHandler;

public class Hello implements IHello{
public void sayHello() {
System.out.println("Hello , sytcun!");
}
}



package cun.InvocationHandler;

public interface IHello {
public void sayHello();
}


public class InvoHelloMain implements InvocationHandler{

private Object obj;

public InvoHelloMain(Object obj) {
this.obj = obj;
}

public static void main(String args[]) {
IHello hello = new Hello();

IHello ihello = (IHello) InvoHelloMain.newInstance(hello);

ihello.sayHello();

}

@SuppressWarnings("finally")
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {

Object result = null;

try{
System.out.println("before hello, hello execute");
result = method.invoke(proxy, args);
return result;
}catch(Exception ex) {
ex.printStackTrace();
} finally {
System.out.println("execute method" + method.getName());
return result;
}
}
public static Object newInstance(Object obj)
{
return java.lang.reflect.Proxy.newProxyInstance(obj.getClass().getClassLoader(),
obj.getClass().getInterfaces(), new InvoHelloMain(obj));
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值