标签:区别 object ati 框架 invoke owa library log 使用
代理即为访问对象添加一层控制层,使其间接化,控制层可以为对象访问添加操作属性。
cglib:Code Generation library,
实例:
1 import java.lang.reflect.Method; 2 3 import net.sf.cglib.proxy.Enhancer; 4 import net.sf.cglib.proxy.MethodInterceptor; 5 import net.sf.cglib.proxy.MethodProxy; 6 7 8 public class MyMethodInterceptor implements MethodInterceptor { 9 10 11 public String myFun(String arg){ 12 return "hello," + arg ; 13 } 14 15 public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { 16 String methodName = method.getName(); 17 18 System. out .println( "[intercept] fun invoked before" ); 19 String result = (String)args[0] + "..." ; 20 System. out .println( result ); 21 System. out .println( "[intercept] fun invoked after" ); 22 return result; 23 } 24 25 public Object createProxy(){ 26 Enhancer enhancer = new Enhancer(); 27 enhancer.setSuperclass(MyMethodInterceptor. class ); 28 enhancer.setCallback( this ); 29 return enhancer.create(); 30 } 31 32 33 public static void main(String[] args) { 34 MyMethodInterceptor ss = new MyMethodInterceptor(); 35 MyMethodInterceptor proxy = (MyMethodInterceptor)ss.createProxy(); 36 37 c1.myFun( "cglib test" ); 38 39 } 40 41 }
标签:区别 object ati 框架 invoke owa library log 使用
原文地址:http://www.cnblogs.com/niejunlei/p/5988656.html