没有合适的资源?快使用搜索试试~ 我知道了~
Spring框架+SpringAOP动态代理
需积分: 2 0 下载量 192 浏览量
2024-03-22
07:56:17
上传
评论
收藏 249KB DOC 举报
温馨提示
试读
22页
SpringAOP动态代理 Spring AOP 使用的动态代理主要有两种方式:JDK 动态代理和 CGLIB 代理。 JDK 动态代理:用于代理实现了接口的类。Spring 会使用 java.lang.reflect.Proxy 类来创建代理对象。 CGLIB 代理:用于代理没有实现接口的类或final类。CGLIB(Code Generation Library)是一个代码生成的类库,可以在运行时动态生成一个目标类的子类,并覆盖其中的方法来实现代理。
资源推荐
资源详情
资源评论
Spring AOP 动态代理原理与实现方式 (转)
标签: spring aop 代理 | 发表时间:2014-03-28 03:47 | 作者:tanzhen-1988
分享到:
出处:http://www.iteye.com
AOP:面向切面、面向方面、面向接口是一种横切技术
横切技术运用:
1.事务管理: (1)数据库事务:(2)编程事务(3)声明事物:Spring AOP-->声明事物
2.日志处理:
3.安全验证: Spring AOP---OOP 升级
静态代理原理:目标对象:调用业务逻辑 代理对象:日志管理
表示层调用--->代理对象(日志管理)-->调用目标对象
动态代理原理:spring AOP 采用动态代理来实现
(1)实现 InvocationHandler 接口
(2)创建代理类(通过 java API)
Proxy.newProxyInstance(动态加载代理类,代理类实现接口,使用 handler);
(3)调用 invoke 方法(虚拟机自动调用方法)
日志处理
//调用目标对象
method.invoke("目标对象","参数");
日志处理
通过代理对象--(请求信息)-->目标对象---(返回信息)----> 代理对象
Spring 动态代理中的基本概念
1、关注点(concern)
一个关注点可以是一个特定的问题,概念、或者应用程序的兴趣点。总而言之,应
用程序必须达到一个目标
安全验证、日志记录、事务管理都是一个关注点
在 oo 应用程序中,关注点可能已经被代码模块化了还可能散落在整个对象模型中
2、横切关注点(crosscutting concern)
如何一个关注点的实现代码散落在多个类中或方法中
3、方面(aspect)
一个方面是对一个横切关注点模块化,它将那些原本散落在各处的,
用于实现这个关注点的代码规整在一处
4、建议(advice)通知
advice 是 point cut 执行代码,是方面执行的具体实现
5、切入点(pointcut)
用于指定某个建议用到何处
6、织入(weaving)
将 aspect(方面)运用到目标对象的过程
7、连接点(join point)
程序执行过程中的一个点
通知类型:
try{
//前置通知
//环绕通知
//调用目标对象方法
//环绕通知
//后置通知
}catch(){
//异常通知
}finally{
//终止通知
}
流程图
一.静态代理原理实例:
剩余21页未读,继续阅读
资源评论
祈祷平安,加油
- 粉丝: 570
- 资源: 32
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功