环绕通知和前置后置通知难度差别不大,这几个的声明的类型都是相同的,需要注意的就是环绕通知它有几个需要注意的点。怎么说环绕通知需要在一个方法运行之前和之后都需要用,那又不能影响人家,所以还要把人家写在中间。基本就这个需要注意的地方。
下面是对select方法的一个环绕声明。和之前的声明一样的就不再多说了。
@Pointcut("execution(int com.itheima.dao.BookDao.select())")
private void pt2(){}
下面是一个环绕通知的内容
@Around("pt2()")
public Object aroundSelect(ProceedingJoinPoint pjp) throws Throwable {
System.out.println("around before advice ...");
//表示对原始操作的调用
Integer proceed = (Integer) pjp.proceed();
System.out.println("around after advice ...");
return proceed + 566;
}
其实的话以后差不多还是这个壳,这个public这一条以后还是直接复制粘贴,后面的返回值管它有没有,直接return,也是复制粘贴,也就是说对只需要对原始操作的返回值类型进行更改,只需要改一个东西。