簡體   English   中英

Spring AOP 和獲取方法的結果

[英]Spring AOP and getting result of method

我正在使用 AOP 編寫自定義指標服務。 這是我的自定義注釋

@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 object 方法的結果添加到我的metrics map 中,而不是單詞“Success”。 我需要使用哪個 arguments 或注釋?

您可以使用returning屬性

@AfterReturning("@annotation(Metric)" , returning="returnValue")
public void afterReturning(JoinPoint joinPoint, Object returnValue) {

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM