基于注解方式声明切面

@Aspect //注明此类事切面类
public class PrintLog(){
@Pointcut("execution(* com.yant.service..*.*(..))")//第一个..表示service下的子包;第二个..表示任意参数(可以没有
private void anyMoth(){}//声明一个切点

@Before("anyMethed() && args(userNmae)")//定义前置通知,其中:args(userName)表示:此前置通知只拦截* com.yant.service..*.*(..)),并把参数赋给下面的方法参数,
public void doAccessCheck(String userNme){
}

@AfterReturning(pointcut="anyMethod()",return="result")//定义后置通知,其中return表示此后置通知只拦截返回值为String的方法,并把此返回结果赋给下面方法的参数result,两者参数名必须相同
public void doAfterReturning(String result){
}

@After("anyMethod()")//定义最终通知
public void doAfter(){
}

@AfterThrowing(pointcut="anyMethod()",throwing="e")//定义异常通知(当所拦截的方法出现异常时)
public void doAfterThrowing(Exception e){
}

@Around("anyMethod()")//定义环绕通知
public Object doBasicProfiing(ProceddingJoinPoint pjp) throws Throwable{
//if(){//判断用户是否有权限
System.out.print("进入方法");
Object result = pjp.proceed(); //此方法是必须
System.out.println("退出方法");
//}
return result;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值