【文件属性】:
文件名称:java常用设计模式及JDK与CGLIB实现动态代理区别(源码)
文件大小:12KB
文件格式:ZIP
更新时间:2016-09-03 12:03:13
java设计模式
java常用设计模式及JDK与CGLIB实现动态代理区别(源码)
/**
* 使用cglib动态代理
* @author
*
*/
public class BookFacadeProxy implements MethodInterceptor{
private Object target;
@Override
public Object intercept(Object obj, Method method, Object[] objs,
MethodProxy proxy) throws Throwable {
System.out.println("事物开始..........");
proxy.invokeSuper(obj, objs);
System.out.println("事物结束..........");
return null;
}
/**
* 创建代理对象
*/
public Object getInstance(Object target){
this.target = target;
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(this.target.getClass());
//回调
enhancer.setCallback(this);
//创建代理对象
return enhancer.create();
}
}
package org.sg.sgg.mode.proxy.jdkProxy.trendProxy2;
/**
* java JDK实现动态代理
* @author
*
*/
public class Test2 {
public static void main(String[] args) {
UserService userService = new UserServiceImpl();
UserHandlerProxy proxy = new UserHandlerProxy(userService);
UserService userServiceProxy = (UserService)proxy.getInstance();
userServiceProxy.add();
}
}
【文件预览】:
proxy
----cglibProxy1()
--------BookFacadeImpl.java(206B)
--------Test.java(288B)
--------BookFacade.java(105B)
--------BookFacadeProxy.java(930B)
----cglibProxy2()
--------Test2.java(266B)
--------SayHello.java(148B)
--------SayHelloCglibProxy.java(973B)
----jdkProxy()
--------trendProxy3()
--------trendProxy2()
--------staticProxy1()
--------trendProxy1()
----d.java(57B)
----模式描述.txt(1KB)