环绕通知
方法定义(作用十分强大)
* 环绕通知
* 1、是一个公共方法 public
* 2、必须有返回值 推荐object的
* 3、方法名称自定义
*4、方法有固定的参数 ProceedingJoinPoint 参数名 自定义
* @Around: 环绕通知注解
* 属性 :1.value:是切入点表达式 表示切面的功能执行的位置.
*
* 位置: 在方法的上面
* 特点:
* 1。在目标方法的前后都能做增强功能
* 2.控制目标方法是否执行
* 3.修改目标方法的执行结果 影响最终调用的结果
*
* 环绕通知 变量值因与后置通知参数 保持一直
*
* 环绕通知: 经常做事务 在目标方法之前开启事务 执行目标方法 在目标方法之后提交事务
示例
@Around(value = "execution(* com.hgzy.ba03_Around..*.do*(..))")
public Object fun(ProceedingJoinPoint pjp) throws Throwable {
Object obj=null;
System.out.println("目标代码执行之前的一次增强"+new Date());
// 调用目标方法
for (Object o: pjp.getArgs()){
// 当参数是小明时 调用 目标方法
if ("小明".equals(String.valueOf(o))){
obj=pjp.proceed();
}
}
System.out.println("目标代码执行之后的一次增强");
// 环绕通知修改 目标方法的返回结果
return "目标方法被修改后的返回值1";
}