第四阶段学习总结
Published in:2022-03-18 | category: 学习

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

1.AOP概念(Aspect Oriented Programming)

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

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

2.AOP底层原理

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

1
2
3
4
5
<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操作

1
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/

仓库服务

Prev:
SpringMVC
Next:
音乐网站考核总结(二)