一:面向切面编程之AOP入门简介(基于注解版)
- AOP简介
指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式。 - AOP相关通知方法
①前置通知(@Before):在目标方法运行前运行
②后置通知(@After):在目标方法运行结束后运行(无论方法正常结束还是异常结束)
③返回通知(@AfterReturning):在目标方法正常返回之后运行
④异常通知(@AfterThrowing):在目标方法出现异常以后运行
⑤环绕通知(@Around):动态代理,手动推荐目标方法运行(JoinPoint.procced) - 实例
⑴创建业务逻辑类
⑵创建切面类
注意点如下:
a:@Aspect这个在类上面的注解,是用来告诉spring当前类是一个切面类
b:公共的切入点表达式的运用,根据上面的注释可知
①如果是本类调用直接引入:公共表达式方法名,如下:@Before("pointCut()")
②如果是其他类调用,则必须引入全路径:如:@Before("com.test.aop.LogAspects.pointCut()")
c:JoinPoint joinPoint:用来获取业务类的信息
①joinPoint.getSignature().getName():获取业务逻辑类方法名
②joinPoint.getArgs():获取业务逻辑类方法中的参数信息
③注意:JoinPoint joinPoint这个参数必须在第一位,否则将会不起作用并且出现错误
⑶配置类信息
注意:
@EnableAspectJAutoProxy:这个表示是开启基于注解版的AOP模式,这个是必须的。
⑷测试
a:首先我们测试正常不抛出异常的例子(说明:我们在调用div方法前后产生的效果)
效果:
b:我们测试正常抛出异常的例子
效果:(可以发现一旦出现异常,返回通知就不会调用了)