Java 如何在验证方法失败之前从AOP返回
我之前正在尝试实现SpringAOP@。 这里是方法Java 如何在验证方法失败之前从AOP返回,java,spring,aop,Java,Spring,Aop,我之前正在尝试实现SpringAOP@。 这里是方法 @Before("execution(* com.dummy.pkg..*.*(..))") public Response<Object> beforeServiceAspect(JoinPoint joinPoint) throws Exception { Object[] signatureArgs = joinPoint.getArgs(); String ses
@Before("execution(* com.dummy.pkg..*.*(..))")
public Response<Object> beforeServiceAspect(JoinPoint joinPoint) throws Exception {
Object[] signatureArgs = joinPoint.getArgs();
String sessionId=(String) signatureArgs[0];
if(null==sessionId||sessionId.isEmpty()||!loginService.getUserInfo(sessionId))
{
Response.setStatusCode("401");
Response.setC
Response.setResultString("Unauthorized User");
return Response;
//this is where i want to return in case of program enter here
//**point 1**
}
//**point 2** where execution reaches then resume normal flow
return "";
}
@之前(“执行(*com.dummy.pkg..*(..))
公共响应beforeServiceAspect(JoinPoint JoinPoint)引发异常{
对象[]signatureArgs=joinPoint.getArgs();
String sessionId=(String)signatureArgs[0];
if(null==sessionId | | sessionId.isEmpty()| |!loginService.getUserInfo(sessionId))
{
响应。设置状态代码(“401”);
Response.setC
Response.setResultString(“未授权用户”);
返回响应;
//这是我想要返回的地方,以防程序在这里输入
//**第1点**
}
//**第2点**执行达到该点,然后恢复正常流程
返回“”;
}
我有两件事要做
如果要修改控制流,则需要一个
@左右的建议,而不是之前的@建议
@Around("execution(* com.dummy.pkg..*.*(..))")
public Response<Object> beforeServiceAspect(ProceedingJoinPoint joinPoint) throws Exception {
Object[] signatureArgs = joinPoint.getArgs();
String sessionId=(String) signatureArgs[0];
if(null==sessionId || sessionId.isEmpty() || !loginService.getUserInfo(sessionId))
{
Response.setStatusCode("401");
Response.setResultString("Unauthorized User");
return Response;
}
return joinPoint.proceed(args);
}
@Around(“execution(*com.dummy.pkg..*(..)”)
公共响应beforeServiceAspect(ProceedingJoinPoint joinPoint)引发异常{
对象[]signatureArgs=joinPoint.getArgs();
String sessionId=(String)signatureArgs[0];
if(null==sessionId | | sessionId.isEmpty()| |!loginService.getUserInfo(sessionId))
{
响应。设置状态代码(“401”);
Response.setResultString(“未授权用户”);
返回响应;
}
返回连接点。继续(args);
}