Spring AOP和获取方法的结果
Spring AOP and getting result of method
我正在使用 AOP 编写自定义指标服务。这是我的自定义注释
@Retention(RUNTIME)
@Target(METHOD)
public @interface Metric {
}
和方面-class:
@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"。我需要使用哪些参数或注释?
您可以使用 returning
属性
@AfterReturning("@annotation(Metric)" , returning="returnValue")
public void afterReturning(JoinPoint joinPoint, Object returnValue) {
我正在使用 AOP 编写自定义指标服务。这是我的自定义注释
@Retention(RUNTIME)
@Target(METHOD)
public @interface Metric {
}
和方面-class:
@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"。我需要使用哪些参数或注释?
您可以使用 returning
属性
@AfterReturning("@annotation(Metric)" , returning="returnValue")
public void afterReturning(JoinPoint joinPoint, Object returnValue) {