Spring Aop详细笔记

Spring Aop(面向切面编程)



一、Spring Aop(面向切面编程)是什么?


(1)面向切面编程(AOP)和面向对象编程(OOP)类似,也是一种编程模式。Spring AOP是基于AOP编程模式的一个框架,它的使用有效减少了系统间的重复代码,达到了模块间的松耦合目的。

(2)AOP的全称是“Aspect Oriented Programming”,即面向切面编程,它将业务逻辑的各个部分进行隔离,使开发人员在编写业务逻辑时可以专心于核心业务,从而提高了开发效率。

(3)AOP采取横向抽取机制,取代了传统纵向继承体系的重复代码,其应用主要体现在事务处理、日志管理、权限控制、异常处理

(4)目前最流行的AOP框架有两个,分别为Spring AOPAspectJ

(5)Spring AOP使用纯Java实现,不需要专门的编译过程和类加载器,在运行期间通过代理方式向目标类植入增强的代码。

(6)AspectJ 是一个基于 Java 语言的 AOP 框架,从 Spring 2.0 开始,Spring AOP 引入了对 AspectJ 的支持。AspectJ 扩展了 Java 语言,提供了一个专门的编译器,在编译时提供横向代码的植入。

(7)AOP的相关术语

7.1 Joinpoint(连接点):指那些被拦截到的点,在 Spring 中,可以被动态代理拦截目标类的方法。
7.2 Pointcut(切入点):指要对那些 Joinpoint 进行拦截,即被拦截的连接点。
7.3 Advice(通知):被拦截到 Joinpoint 之后要做的事情,即对切入点增强的内容。
7.4 Target(目标):指代理的目标对象。
7.5 Weaving(植入):指把增强的代码应用到目标上,生成代理对象的过程。
7.6 Proxy(代理):指生成的代理对象。
7.7 Aspect(切面):切入点和通知的结合。


二、Spring JDK动态代理


JDK动态代理是通过JDK中的java.lang.reflect.Proxy类实现的。具体案例如下:

文档链接: 点此看详细文档

三、Spring CGLIB动态代理


JDK 动态代理使用起来非常简单,但是它也有一定的局限性,这是因为 JDK 动态代理必须要实现一个或多个接口,如果不希望实现接口,则可以使用 CGLIB 代理。

文档链接:点此看详细文档



四、Spring通知类型和创建AOP代理


讲解了 AOP 手动代理的两种方式,下面通过讲解 Spring 的通知介绍 Spring 是如何创建 AOP 代理的。

文档链接:点此看详细文档



五、Spring使用AspectJ开发AOP


AspectJ 是一个基于 Java 语言的 AOP 框架,它扩展了 Java 语言。Spring 2.0 以后,新增了对 AspectJ 方式的支持,新版本的 Spring 框架,建议使用 AspectJ 方式开发 AOP。

使用AspectJ开发AOP通常有两种方式:

  • 基于XML的方式
  • 基于注解的方式

基于XML的方式:
文档链接:点此看详细文档

基于注解的方式:
文档链接:点此看详细文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值