很多项目中都使用了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
分享到:
相关推荐
AOP的意思就是面向切面编程。本文主要是通过梳理JDK中自带的反射机制,实现 AOP动态代理模式,这也是Spring AOP 的实现原理
springAOP配置实现动态代理,有利于熟悉动态代理原理,深入了解spring。
NULL 博文链接:https://arne3166.iteye.com/blog/1046340
Spring AOP的实现机制中文版,动态代理及原理,自定义类加载器
反射实现 AOP 动态代理模式(Spring AOP 的实现 原理)
Spring Aop的底层实现技术 --- Jdk动态代理原理 很不错的一篇文章
NULL 博文链接:https://jadeluo.iteye.com/blog/1940019
为了说明Spring的AOP原理,本人使用代理模式中的动态代理完成演示AOP编程的原理的演示。相信,如果你耐心看完整个程序(几乎一行注释一行代码),那么你对Spring这个东西就不是觉得有什么神秘了! 阅读对象:凡是喜爱...
代理模式与动态代理--Spring AOP原理.doc
Jdk动态代理,基于接口的代理示例 InovactionHandler Proxy
Spring AOP主要基于动态代理模式,它允许开发者在不改变原有代码结构的情况下,增加额外的行为。这主要通过定义“切面(Aspects)”和“通知(Advices)”来实现,其中切面定义了何时以及如何插入额外的行为,而通知...
这两种代理方式在Spring AOP中起到关键作用,用于实现横切关注点的切面编程。通过学习它们的原理和实际应用,您将能够更好地理解和利用Spring AOP来提高您的应用程序的可维护性和可扩展性。 内容亮点: JDK动态...
Spring AOP代理详细介绍 前言: 一开始我对spring AOP还是属于一知半解的状态,这几天遇到一个问题,加上又查看了一些Spring相关知识,感觉对这个问题有了更深刻的认识。所以写下来分享一下。 我们知道,Spring支持...
Spring框架系列(11) - Spring AOP实现原理详解之Cglib代理实现.doc
SpringAOP入门和原理分析,动态代理
IoC原理分析 ... Spring AOP原理分析 Spring AOP基于XML和注解的实现 Spring应用之Spring JDBC实现 Spring应用之JdbcDaoSupport Spring应用之事务支持 Spring与Mybatis整合
java 动态代理实现,模拟了spring实现aop的原理,对学习面向切面编程的朋友有帮助!
spring中动态代理机制的实现原理及AOP实现原理,JDK的反射,cglib类。
Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,AOP的原理就是java的动态代理机制
Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,AOP的原理就是java的动态代理机制