首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

AOP动态署理cglib方式实现

2012-09-28 
AOP动态代理cglib方式实现如果没有实现接口,前面那种JDK实现方式就不行了,但可以使用CGLIB这种方式,他是利

AOP动态代理cglib方式实现
如果没有实现接口,前面那种JDK实现方式就不行了,但可以使用CGLIB这种方式,他是利用继承方式实现的,是目标类的子类.

代码如下:

package com.test.aop;import java.lang.reflect.Method;import com.sun.corba.se.spi.ior.MakeImmutable;import net.sf.cglib.proxy.Enhancer;import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cglib.proxy.MethodProxy;public class ProxyCglib implements MethodInterceptor{private Object target;public Object createProxyObject(Object target){this.target=target;Enhancer enhancer=new Enhancer();enhancer.setSuperclass(this.target.getClass());//子类,继承了所有非final的方法enhancer.setCallback(this);return enhancer.create();}public Object intercept(Object proxy, Method method, Object[] args,MethodProxy methodProxy) throws Throwable {UserService service=(UserService)this.target;Object result=null;if(service.getUser()!=null){try {result = methodProxy.invoke(target, args);} catch (Exception e) {// 在这执行}}return result;}}

热点排行