Я новичок в Spring AOP. Я реализовал аспект, который отлично работает на одном из моих методов. Но когда я реорганизую метод и извлекаю часть логики c (включая аннотацию, которую я использую для запуска аспекта), аспект больше не вызывается. Более подробная информация представлена ниже.
У меня есть что-то похожее на это:
@RequiresCheck
public ServiceResult<AccountDto> save(AccountDto accountDto) {
// some logic here
accountRepository.save(account.toAccount());
// some logic there
return ServiceResult.ok(accountDto);
}
И аспект, похожий на этот
@Around("@annotation(requiresCheck)")
public Object checkFullSemRights(ProceedingJoinPoint joinPoint) throws Throwable {
if (check()) {
return joinPoint.proceed();
}
throw new Exception();
}
Этот код работает просто отлично ! Когда я реорганизую первый метод, который будет выглядеть следующим образом:
public ServiceResult<AccountDto> save(AccountDto accountDto) {
// some logic here
return save2(accountDto.toAccount());
}
@RequiresCheck
public ServiceResult<AccountDto> save2(Account account) {
accountRepository.save(account);
// some logic there
return ServiceResult.ok(account.toAccountDto());
}
Тогда аспект больше не выполняется. Я подумал, что этот аспект должен выполняться для любого метода, который имеет аннотацию "@ResuiresCheck", но, похоже, это не так. Или я что-то упустил?