【后置通知】
1.后置通知是在连接点完成之后执行的,即连接点返回结果或者抛出异常的时候,下面的后置通知记录了方法的终止。
2、一个切面可以包括一个或者多个通知。
示例:
LoggingAspect.java:
1 //后置通知:在目标方法执行后(无论是否发生异常),执行的通知。 2 @After("execution(public int com.hk.spring.aop.impl.ArithmeticCalculator.*(int,int))") 3 public void afterMethod(JoinPoint joinPoint){ 4 String methodName = joinPoint.getSignature().getName(); 5 System.out.println("The method " + methodName + " ends"); 6 }
Main.java:
1 public class Main { 2 public static void main(String[] args) { 3 //1.创建Spring的IOC容器 4 ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); 5 6 //2.从IOC容器中获取Bean的实例 7 ArithmeticCalculator arithmeticCalculator = ctx.getBean(ArithmeticCalculator.class); 8 //3.使用bean 9 int result = arithmeticCalculator.add(3, 6); 10 System.out.println("result:" + result); 11 12 result = arithmeticCalculator.div(12, 2); 13 System.out.println("result:" + result); 14 } 15 16 }
运行结果:
假如将Main.java中的div方法中的第二个参数改为0,看看会发生什么情况?
运行结果:
注意:在后置通知中,还不能访问目标方法执行的结果。