分析Spring AOP的动态代理实现原理

很多项目中都使用了Spring,Spring的特性有IOC和AOP,其他IOC为控制反转,实现的效果是将创建对象的权力分配给容器,我们只需要向容器中取对象,本文将分析Spring AOP的特性

(1)Spring AOP在开发中可以帮助我们实现什么功能?
1) 记录日志
2) 统一处理异常
3) 权限限制
4) 方法消耗时间监控
5) ....

(2)为什么要使用AOP?优点在哪里,缺点在哪里?
优点包括:减少业务复杂度、易维护、易扩展,如果这里把业务流程看做纵向,那么AOP则为横向,满足OOP的不足之处
缺点包括:基于反射因此性能慢,动态生成的反射类会存入JVM中的方法区,方法区如果内存不足则会引发FULL GC,FULL GC会引其系统停顿服务直到结束,如果回收后空间依然不够则会引发OOM异常

(3)Spring使用AOP步骤?
1)扫描并标识通过Annoation或者XML被代理的类
2)通过上述类区分,分别获取它们的接口
3)获取实现InvocationHandler的实现类
4)在内存中生成代理类
5)为代理类创建对象交给Spring容器管理
此时当在程序中注入被代理的对象实际上是代理的对象

参考文章:[url]http://kiral.iteye.com/blog/1198982[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值