Spring的AOP技术小结——基于xml和基于注解的两种方式

  • Post author:
  • Post category:其他


AOP简介

AOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的

耦合度降低

,提高程序的可重用性,同时提高了开发的效率。

在这里插入图片描述

重点概念:

Pointcut(切入点):被增强的方法

Advice(通知/增强):封装增强业务逻辑的方法

Aspect(切面):切点+通知

Weaving(织入):将切点与通知结合的过程

在这里插入图片描述

在这里插入图片描述

基于xml的AOP开发:

步骤如下:

在这里插入图片描述

1、导入AOP的相关坐标:aspectjweaver

在这里插入图片描述

2、创建目标接口和目标类,即切点(被增强的方法)

在这里插入图片描述

在这里插入图片描述

3、创建切面类(内部由增强方法即通知)

在这里插入图片描述

4、在applicationContext.xml中配置目标对象和切面对象

5、在applicationContext.xml中进行织入,即将声明切面(将切点和通知结合起来)

在这里插入图片描述

注:主要就是在xml中将需要增强的方法(切点)和切面类中的方法(通知)进行织入产生联系。


切点表达式的写法:


在这里插入图片描述

在这里插入图片描述

上面这个最常用,含义是aop包下的任意类的任意方法(返回值类型为*)都会被增强

加粗样式

上面这个实例的含义是aop包及其任意子包下的任意类下的任意方法(返回值类型为*)都会被增强


通知的类型:


在这里插入图片描述

抽取切点表达式:

在这里插入图片描述

在这里插入图片描述


基于注解的AOP开发:


在这里插入图片描述

前两步和之前一样

3、切点和切面类需要写明Component


需要@Aspect注解声明该类为切面类

在这里插入图片描述

4、直接在切面类中用注解配置织入关系

在这里插入图片描述

5、在配置文件中开启组件扫描和aop自动代理

在这里插入图片描述

切点表达式的抽取:在切面类中定义切点,用@Pointcut注解指明切点表达式,使用的时候有下面两种方式。

在这里插入图片描述



版权声明:本文为qq_35227352原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。