好的各位小伙伴
上次认识了 AOP
今天来认识 AOP 的通知
Spring 的 AOP 实现
先来搭建 springAOP 开发环境,需要引入jar包:aopalliance-1.0.jar、spring-aop-4.2.1.RELEASE.jar
,
现在来写我们的代码了!先来看一下我们的 studentService 类,
前置通知
首先来实现我们的前置通知类,实现 MethodBeforeAdvice
注册需要代理的类,注册前置通知的类,接着注册代理生成器,然后把目标类,目标类接口,通知注入代理生成器!
测试一下!
预测测试结果:会将我们前置通知的内容打印在目标方法内容的前面
这样我们的前置通知就做好了!后面的几个通知在流程上和我们的前置通知是一样
后置通知
后置通知实现 AfterReturningAdvice
注册通知,注册代理和注入通知
测试一下!
预期结果:将后置通知打印的内容出现在目标方法内容的后面
环绕通知
实现 MethodInterceptor
注册通知,注册代理和注入通知。
测试一下!
预期结果:环绕通知的前面执行部分 ,在方法执行之前打印;环绕通知的后面执行部分 ,在方法执行之后打印。
异常通知
实现 ThrowsAdvice
注册通知,注册代理和注入通知
测试一下
预测结果:在程序出现异常的时候就会出现异常通知!
通知的注意点
在代理类生成器的配置里面 配置接口的<property name = "interfaces" value="接口" >默认可以省略
后置通知是在目标方法执行后才执行 ,可以得到目标方法返回的值 ,但不能改变返回值。
环绕通知有在目标方法执行前的代码,也有在目标方法执行后的代码,可以得到目标方法的值,可以改变这个返回值!
好的今天的分享就到这里了
小伙伴们再见了
网友评论