1716
参数
返回值
返回后通知
环绕通知
异常信息
@Before和@After获取参数方式
@Before("pt()")
public void before(JointPoint jp){
Object[] args=jp.getArgs();
sout(Arrays.toString(agrs));
sout("before advice");
}
可以进行拦截修改,使程序健壮性更强。
处理空格
拿到参数,trim()
//环绕通知中存在对原始方法的调用。
public class DataAdvice{
@Pointcut("execution(boolean com.itheima.service.*Service.*(*,*))")
private void servicePt()
@Around("DataAdvice.servicePt()")
public Object trimStr(ProceedingJoinPoint pjp) throws Throwable{
Object[] args=pjp.getArgs();
for(int i=0;i<args.length;i++){
//判断参数是不是字符串
if(args[i].getClass().equals(String.class)){
args[i]=args[i].toString().trim();
}
}
Object ret=pjp.proceed(args);
return ret;
}
}