Я пишу сервис пользовательских метрик с использованием АОП. Вот моя аннотация
@Retention(RUNTIME)
@Target(METHOD)
public @interface Metric {
}
и класс аспекта:
@RequiredArgsConstructor
@Aspect
@Component
@Data
public class MetricAspect {
Map<Signature, Map<Object, Counter>> metrics = new HashMap<>();
@AfterReturning("@annotation(Metric)")
public void afterReturning(JoinPoint joinPoint) {
Signature signature = joinPoint.getSignature();
metrics.get(signature).get("Success").increment();
}
}
Я добавил свою собственную аннотацию к моему методу:
@Override
@Metric
public GetCMOwnerInvoiceResponseDTO getCMOwnerInvoice(GetCMOwnerInvoiceRequestDTO getCMOwnerInvoiceRequest) throws ValidationWebFault_Exception {
GetCMOwnerInvoiceRequest request = wsConversionService.convert(getCMOwnerInvoiceRequest, GetCMOwnerInvoiceRequest.class);
GetCMOwnerInvoiceResponse response = invoiceService.getCMOwnerInvoice(request);
return wsConversionService.convert(response, GetCMOwnerInvoiceResponseDTO.class);
}
Мне нужно добавить результат метода, который является объектом GetCMOwnerInvoiceResponseDTO
, на мою карту metrics
вместо слова «Success». Какие аргументы или аннотацию мне нужно использовать?