首先要了解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的作用就是保证开发者在不修改代码的前提下,为系统中的业务组件添加某种通用功能。