文章目录

  • Spring中的AOP切面编程的三种实现方式
  • 1.最基本AOP的实现
  • a.引入jar包
  • b.编写通知类,这里以后置通知和环绕通知类为例子进行说明
  • c.在SpringIOC容器中配置
  • d.测试
  • 2.使用注解对AOP进行实现
  • a.引入jar包
  • b.编写基于注解的AOP通知类
  • c.在SpringIOC容器中配置
  • d.测试
  • 3.基于自定义形式的AOP的实现
  • a.引入jar包
  • b.编写基于自定义形式的AOP切面编程类
  • c.在SpringIOC容器中配置
  • 切入点execution的使用方法


Spring中的AOP切面编程的三种实现方式

1.最基本AOP的实现

a.引入jar包

jar包的引入如下图:

java中那些地方用到了aop java编程中实现aop有几种方式_java中那些地方用到了aop

b.编写通知类,这里以后置通知和环绕通知类为例子进行说明

通知类的编写如下图:

java中那些地方用到了aop java编程中实现aop有几种方式_java方法_02

java中那些地方用到了aop java编程中实现aop有几种方式_java方法_03

c.在SpringIOC容器中配置

如下图:

java中那些地方用到了aop java编程中实现aop有几种方式_AOP_04

d.测试

java中那些地方用到了aop java编程中实现aop有几种方式_java方法_05

2.使用注解对AOP进行实现

a.引入jar包

jar包的引入如下图:

java中那些地方用到了aop java编程中实现aop有几种方式_jar包_06

b.编写基于注解的AOP通知类

如下图:

java中那些地方用到了aop java编程中实现aop有几种方式_AOP_07

java中那些地方用到了aop java编程中实现aop有几种方式_java方法_08

c.在SpringIOC容器中配置

如下图:

java中那些地方用到了aop java编程中实现aop有几种方式_java方法_09

d.测试

这样在对应的切面中的java方法执行之后,前置通知方法会在此java方法执行之前先执行,后置通知方法会在此java方法执行之后再执行,而异常通知方法会在java方法出现异常之后执行,环绕通知方法会在java方法执行的前后执行,最终通知会在整个方法执行之后无论有没有异常都会执行;

3.基于自定义形式的AOP的实现

a.引入jar包

jar包的引入如下图:

java中那些地方用到了aop java编程中实现aop有几种方式_AOP_10

b.编写基于自定义形式的AOP切面编程类

如下图:

java中那些地方用到了aop java编程中实现aop有几种方式_AOP_11

c.在SpringIOC容器中配置

如下图:

java中那些地方用到了aop java编程中实现aop有几种方式_jar包_12

切入点execution的使用方法

切入点对应的execution()小括号内的内容可以有多种书写形式,目前我掌握了两种,
1.void org.lanqiao.service.impl.StudentServiceImpl.addStudent(org.lanqiao.entity.Student))这种形式表示切入点是
org.lanqiao.service.impl包中的StudentServiceImpl类中的方法名字是addStudent,只有一个参数,参数类型是

org.lanqiao.entity.Student,返回值类型是void,的方法,注意方法的参数只写类型的全类名
2.* org.lanqiao.service.impl.星号.星号(…)此中形式表示切入点是org.lanqiao.service.impl包中的所有的方法
第一个星号代表的是所有的返回类型,第二个星号代表org.lanqiao.service.impl包中的所有的类,第三个*表示类中所有的方法,
…代表的是方法的所有参数类型