首页  »   编程

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

网友分享于:2013-09-05  浏览:3次
分析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    
   

相关解决方案

最新解决方案