package it.cast.aop;
import java.lang.reflect.Method;
import it.cast.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 targetObject; // 代理的目标对象
public Object createProxyInstance(Object targetObject) {
this.targetObject = targetObject;
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(this.targetObject.getClass()); // 设置目标类为代理对象的父类
enhancer.setCallback(this);
return enhancer.create();
}
// 另一种: 整个方法可看作环绕通知
@Override
public Object intercept(Object proxy, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {
PersonServiceBean bean = (PersonServiceBean)this.targetObject;
Object result = null;
if (bean.getUser() != null) { // 有权限
// ...... advice() ----> 前置通知(所谓通知,就是我们拦截到业务方法之后所要干的事情)
try {
result = methodProxy.invoke(targetObject, args); // 把方法调用委派给目标对象
// ...... afteradvice() ----> 后置通知
} catch (RuntimeException e) {
// ...... exceptionadvice() ----> 例外通知
} finally {
// ...... finallyadvice() ----> 最终通知
}
}
return result;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
使用JDK中的Proxy技术实现AOP功能与使用CGLIB实现AOP功能
共15个文件
java:5个
class:5个
jar:2个
5星 · 超过95%的资源 需积分: 16 15 下载量 133 浏览量
2016-10-19
23:01:48
上传
评论
收藏 330KB ZIP 举报
温馨提示
使用JDK中的Proxy技术实现AOP功能与使用CGLIB实现AOP功能
资源推荐
资源详情
资源评论
收起资源包目录
AOP.zip (15个子文件)
AOP
bin
it
cast
aop
JDKProxyFactory.class 2KB
CGlibProxyFactory.class 2KB
service
PersonService.class 288B
impl
PersonServiceBean.class 1KB
juint
test
AOPTest.class 1KB
.settings
org.eclipse.jdt.core.prefs 598B
src
it
cast
aop
JDKProxyFactory.java 1KB
CGlibProxyFactory.java 1KB
service
PersonService.java 200B
impl
PersonServiceBean.java 665B
juint
test
AOPTest.java 687B
.project 379B
.classpath 497B
lib
asm-2.2.3.jar 34KB
cglib-nodep-2.2.jar 315KB
共 15 条
- 1
资源评论
- 凝思2017-09-22学习了,总结的很到位,两种动态代理明了清晰!
李阿昀
- 粉丝: 1w+
- 资源: 44
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功