/**
* aop增强,用于处理每个操作前操作角色身份的确认
*/
@Slf4j
@Component
@Aspect
public class RoleCheckAspect {
/**
* 定义切入点,切入点为com.example.demo.aop.AopController中的所有函数
*通过@Pointcut注解声明频繁使用的切点表达式
*/
@Pointcut("execution(public * cn.com.xytkj.shop.admin.controller.console.ConsoleController.*(String)) && args(token) && @within(roleCheck))")
public void RoleCheckAspect(String token,RoleCheck roleCheck){}
/**
* @description 使用环绕通知
*/
@Around(value = "RoleCheckAspect(point,roleCheck)")
public void doAroundGameData(ProceedingJoinPoint pjp, String point,RoleCheck roleCheck){
String[] roles = roleCheck.value();
for (String role:roles){
log.info("角色 {}",role);
}
try{
pjp.proceed();
System.out.println("球星本场得到" + point + "分" );
}
catch(Throwable e){
System.out.println("异常通知:球迷要求退票!");
}
}
}