首先要了解Spring是什么是干嘛用的
Spring 是 Java EE 编程领域中的一款轻量的开源框架,Rod Johnson 被称为 “Spring之父” ,他于2002年提出并且创立,他就是用来要简化Java企业应用程序的开发难度和周期。Spring 自诞生以来就备受青睐,一直以来都以广大的开发人员作为Java企业级应用程序开发的首选。时至今日,Spring 依然成为了Java EE 代名词,成为了构建Java EE 应用的事实标准。
接下来我就继续分享Spring AOP吧
Spring 在运行期间会为目标生成一个动态代理对象,,并且代理对象中实现对目的对象的增强。
Spring AOP 的底层是通过两种动态代理机制,为目标对象(Target Bean)执行横向织入的。
代理技术 | 描述信息 |
JDK动态代理 | Spring AOP默认的动态代理方式若目标对象实现了若干的接口,Spring 使用JDK的Java.lang.reflect.Proxy类进行处理。 |
CGLIIB动态代理 | 若目标对象没有实现任何接口,Spring 则使用CGLIB库生成目标对象的子类,以实现对目标对象的代理。 |
Spring AOP 连接点
Spring AOP 并没有像其他AOP框架一样提供了完整的AOP功能,它是Spring 提供的一种简化版的AOP组件 。其中最明显的简化就是,Spring AOP 只支持一种连接点类型:方法调用。你可能会这样认为觉得这是一个严重的限制,但是实际上Spring AOP这样设计的原因是为了让Spring更易于访问。
方法调用连接点是迄今为止最有用的连接点,通过它可以实现日常编程中绝大多数于AOP相关的有用功能。
AOP的作用
AOP 采取横向抽取机制(即动态代理),取代了传统纵向继承机制的重复性代码,其应用主要体现在事物管理、日志管理、权限控制、异常处理方面。
主要作用是分离功能性和非功能性需求,使开发人员可以集中处理某一关注点或横切逻辑,减少对业务代码的侵入,增强代码的可读性和可维护性。简单来说就是AOP的作用就是保证开发者在不修改代码的前提下,为系统中的业务组件添加某种通用功能。
















