后置通知
在切入点的目标方法执行后(无论有异常抛出没的),都会执行这个通知方法!
如果想要在通知方法里访问到目标方法返回的结果,可以用返回通知
返回通知
是在目标方法执行之后没有异常,并且返回结果后才执行通知方法:
异常通知
当目标对象抛出异常的时候执行通知方法,添加一个div除法方法
环绕通知
就是把前面4中通知全给整合在一起,环绕目标方法的所有通知的意味。
使用它必须要求:
1、必须要带参数ProceedingJoinPoint类型的参数,这个参数可以直接调用原来的目标方法。
2、环绕通知方法必须有返回值,这个反正值就是目标方法的返回值。
所有的通知都写一块了,功能强大,但是,考虑一个问题,是不是没次有切面需求的时候,都要把所有的通知方法都需要实现呢?
最后说一个问题,当同一个目标方法有多个切面的时候,哪个切面先执行,取决于在切面类上的注解@order(值小的先执行)。