文章目录
- 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包的引入如下图:
b.编写通知类,这里以后置通知和环绕通知类为例子进行说明
通知类的编写如下图:
c.在SpringIOC容器中配置
如下图:
d.测试
2.使用注解对AOP进行实现
a.引入jar包
jar包的引入如下图:
b.编写基于注解的AOP通知类
如下图:
c.在SpringIOC容器中配置
如下图:
d.测试
这样在对应的切面中的java方法执行之后,前置通知方法会在此java方法执行之前先执行,后置通知方法会在此java方法执行之后再执行,而异常通知方法会在java方法出现异常之后执行,环绕通知方法会在java方法执行的前后执行,最终通知会在整个方法执行之后无论有没有异常都会执行;
3.基于自定义形式的AOP的实现
a.引入jar包
jar包的引入如下图:
b.编写基于自定义形式的AOP切面编程类
如下图:
c.在SpringIOC容器中配置
如下图:
切入点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包中的所有的类,第三个*表示类中所有的方法,
…代表的是方法的所有参数类型