Аспект не внедряется даже после использования @Provides в модуле приложения

Я пытаюсь использовать AspectJ для аннотированных метрик в приложении кинжала, нет проблем со сборкой, но аспект не внедряется.

Я пытался использовать @Provides в базовом модуле, но это не помогло.

аспект:

@Singleton
@Aspect
public class TimedAspect {

/*private final XYZ xyz;

@Inject
public TimedAspect(@Named(XYZ_CLIENT) XYZ xyz) {
    this.xyz = xyz;
}*/

@Setter
protected XYZ xyz;

@Around(value = "execution(* com.myproject.myapp..*(..)) && @annotation(timed)", argNames = "metricName")
public Object profile(final ProceedingJoinPoint joinPoint, final Timed time) throws Throwable {
    final Instant startTime = Instant.now();
    PutMetricDataRequest metricRequest = new PutMetricDataRequest();
    try {
        return joinPoint.proceed();
    } finally {
        String metricName = timed.metricName();
        metricRequest.setMetricData(Collections.singletonList(
                new MetricDatum()
                        .withMetricName(metricName)
                        .withTimestamp(Date.from(startTime))
                        .withUnit(StandardUnit.Milliseconds)
                        .withValue(Double.valueOf(Duration.between(startTime, Instant.now()).toMillis()))
        ));
        metricRequest.setNamespace("ABC");
        xyz.putMetricData(metricRequest);

             }
    }
 }

Annotation:
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD, ElementType.CONSTRUCTOR })
public @interface Timed {
   String metricName() default "";
}

Модуль:

 @Module
 public class BasicModule {
   @Singleton
   @Provides
   @Named(TIMED_ASPECT)
   public static TimedAspect providesTimedAspect(@Named(XYZ_CLIENT) XYZ xyz)    {
    final TimedAspect timedAspect = Aspects.aspectOf(TimedAspect.class);
    timedAspect.setXyz(xyz);
    return timedAspect;
        }
   }

Обработчик:

public class BoomEventHandler {

  @Timed(metricName = "CheckLatency")
  public Response handleRequest(A a, C c) {
    //..doesSomething
  }
}

Метрика не регистрируется.

0 ответов

Другие вопросы по тегам