第四阶段学习总结

本文详细介绍了AOP(面向切面编程)的概念,包括其降低耦合度和提高代码可复用性的优势。讨论了AOP的底层原理,即动态代理,分为JDK动态代理和CGLIB动态代理两种情况。重点讲解了Spring框架中基于AspectJ的AOP操作,包括通知类型(前置、后置、环绕等)、切入点表达式以及如何在XML和注解方式下配置AOP。同时,还提到了增强类的优先级设置,并提供了相关依赖的获取途径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这周学习的关于AOP的知识点总结:

1.AOP概念(Aspect Oriented Programming)

        (1)面向切面编程(面向方面编程),利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑的各部分之间的耦合度降低,提高程序的可重性,同时提高了开发的效率。

        (2)不通过修改源代码,在主干功能里面添加新功能。

2.AOP底层原理

        (1) AOP底层使用动态代理

 <1>有两种情况动态代理

  第一种有接口,使用JDK动态代理(创建接口实现类的代理对象,增强类的方法)

  第二种没有接口,使用CGLIB动态代理(创建当前子类的代理对象,增强类的方法)

3.AOP(JDK动态代理)

        (1)使用JDK动态代理,使用Proxy类里面的方法创建动态对象

        调用newProxyInstance方法

方法有三个参数:

        (类加载器)

        (增强方法所在的类,这个类实现的接口,支持多个接口)

        (实现这个接口InvocationHandler,创建代理对象,写增强方法)

(2)编写JDK动态代理代码

        (创建接口,定义方法)

        (创建接口实现类,实现方法)

        (使用Proxy类创建接口代理对象)

4.通知(增强):实际增强的逻辑部分就叫通知(增强)

        (前置通知)(@Before)

        (后置通知)(@AfterReturning)

        (环绕通知)(@Around)

        (异常通知)(@AfterThrowing)

        (最终通知)finally(@After)

5.AOP操作(准备)

(1)在Spring框架中一般都是基于AspectJ实现AOP操作

 AspectJ不是Spring组成部分,独立AOP框架,一般把AspectJ和Spring框架一起使用,进行AOP操作。

(2)基于AspectJ实现AOP操作

        (基于xml配置文件实现)

        (基于注解方式实现)

(3)在项目工程中引入AOP相关依赖

· 

(4)切入点表达式

        (语法结构)

        execution ([权限修饰符] [返回类型] [类全路径] [方法名称] ([参数列表]))

6.AOP操作(AspectJ注解)

(1)创建类,在类里面定义方法

(2)创建增强类

           在增强类里面创建方法,不同的方法代表不同的类型通知

(3)进行通知的配置

           (在Spring配置文件中开启注解扫描)

          (使用注解创建User和UserProxy对象)

          (在增强类上面添加注解@Aspect)

            (在Spring配置中开启生成代理对象)

(4)配置不同类型的通知

         在增强类的里面,在作为通知方法上面添加通知类型注解,使用切入点表达式配置

(5)相同切入点抽取

(6)设置增强类的优先级

        (在增强类的上面添加注解@Order(数字类型值),数字越小,优先级越高)


两个可以找jar包和依赖的网站:
https://mvnrepository.com/

仓库服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值