Аспект Spring для сквозного использования конвейера процесса - PullRequest
0 голосов
/ 15 мая 2019

Я хочу использовать пружинный аспект для моего сквозного процесса как обработчик до или после в моем жизненном цикле выполнения процесса. Например

То, что я хочу перед методом, я хочу выполнить мой обработчик, и из-за его ответа я хочу завершить myprocess и вернуть пользовательский ответ.

Например, в состоянии остановки я должен вызвать пользовательское исключение, чтобы остановить процесс в этот раз. Как я могу обработать свой ответ возврата, я хочу дать значимый объект на клиенте. Каков наилучший способ сделать это?

@Before
MyHandler()
{

bool stop=checkvalue();
if(stop==false)
continue...
else
{
  //break all process
    and return custom response to client
  //throw exception but meaningfullresponse??
}

}

1 Ответ

0 голосов
/ 15 мая 2019

Вместо использования Before advice я бы использовал Around advice, чтобы обернуть вызов метода и заранее вызвать checkValue():

@Around("someJoinpoint")
public Object MyHandler(ProceedingJoinPoint pjp) {
    if (!checkvalue()) {
        return pjp.proceed();
    } else {
        return someCustomResponseToClient();
    }
}

Более подробную информацию о Around совете можно найти в документации Spring .

...