У меня есть метод, который будет обновлять поле, но я хочу проверить значение до того, как этот метод будет выполнен, чтобы я мог определить действие (изменить / добавить / удалить).
@Before(value = "execution(* com.test.app.*.service.DefaultBirthRegistrationService.updateRegistrationField(..)) && args(referenceNumber, fieldDetails)")
public void assignAction(String referenceNumber, BirthRegistrationField fieldDetails) {
Action action = birthRegistrationService.determineUpdateAction(referenceNumber, fieldDetails, Action.EDITED);
}
Затем, после успешного выполнения метода updateRegistrationField()
, я хочу зарегистрировать событие, но с значением action
, установленным в @Before
. Я не хочу записать событие в случае сбоя updateRegistrationField()
. Вот почему я хочу использовать @AfterReturning.
Это код @AfterReturning
:
@AfterReturning(pointcut = "execution(* com.test.app.*.service.DefaultBirthRegistrationService.updateRegistrationField(..)) && args(referenceNumber, fieldDetails)")
public void editEvent(String referenceNumber, BirthRegistrationField fieldDetails) {
audit(referenceNumber, action, fieldDetails.getName());
}
Переменной action
должно быть значение, назначенное в @Before
.
Возможно ли это?
Я также рассмотрел использование @Around
, но проблема в том, что я хочу выполнить только часть кода до выполнения метода и часть код после выполнения метода.