`
程序新手
  • 浏览: 58435 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

分析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容器管理
        此时当在程序中注入被代理的对象实际上是代理的对象

      参考文章:http://kiral.iteye.com/blog/1198982    
   
1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics