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

16_传智播客Spring2.5视频教程_使用CGLIB实现AOP功能与AOP概念解释

2009-04-12 11:12 896 查看
代理对象 和目标对象 没有实现接口

将代理对象 设置成 目标对象的 子类

package xxl.aop.one.service.proxy;

import java.lang.reflect.Method;

import xxl.aop.one.service.impl.PersonServiceBean;

import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;

public class CGlibProxyFactory implements MethodInterceptor {

// 目标对象
private Object argertObject = null;
public Object createProxyInctance(Object object) {

this.argertObject = object;

//代理对象类
Enhancer enhancer = new Enhancer();

//将目标对象设置为代理对象的父类
enhancer.setSuperclass(object.getClass());

//设置本身为 回调用对象
enhancer.setCallback(this);

// 生成并返回代理对象
return enhancer.create();

}
/**
* @param proxyObject 代理对象
* @param method 被拦截到的方法
* @param args 被拦截到的方法的参数列表
* @param methodProxy 代理方法对象
*/
public Object intercept(Object proxyObject, Method method, Object[] args,
MethodProxy methodProxy) throws Throwable {
PersonServiceBean bean = (PersonServiceBean) this.argertObject;
Object result = null;
if (bean.getUser() != null){
result = methodProxy.invoke(this.argertObject, args);
}
return result;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: