Spring Aspect на конвертере

Я создал простую Aspect аннотацию для измерения времени выполнения аннотированного метода. Когда я аннотирую метод простого Spring Bean, внедряю bean-компонент и запускаю его как bean.annotatedMethod(), все работает нормально.

Однако, когда я аннотирую метод convert() в Spring Converter, аннотация игнорируется. Я предполагаю, что причина в том, что convert() вызывается внутри Spring ConversionService, и почему-то аспекты не соблюдаются. Есть ли способ заставить его работать?


Аннотация:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface LogExecTime {

}

Аспект, который я регистрирую весной:

@Aspect
@Component
public class LogTimeAspect {

    @Around(value = "@annotation(annotation)")
    public Object LogExecutionTime(final ProceedingJoinPoint joinPoint, final LogExecTime annotation) throws Throwable {
        final long startMillis = System.currentTimeMillis();
        try {
            System.out.println("Starting timed operation");
            final Object retVal = joinPoint.proceed();
            return retVal;
        } finally {
            final long duration = System.currentTimeMillis() - startMillis;
            System.out.println("Call to " + joinPoint.getSignature() + " took " + duration + " ms");
        }

    }
}

Это отлично работает:

@Component
public class Operator {

    @LogExecTime
    public void operate() throws InterruptedException {
        System.out.println("Performing operation");
        Thread.sleep(1000);
    }
}



@Bean
protected Void test(Operator o) {
    o.operate();

    return null;
}

Но здесь аннотация игнорируется:

public class SampleConverter implements Converter<SourceType, ResultType> {
    @Override
    @LogExecTime
    public ImmutableData convert(@Nonnull ClassifiedEvent result) {
       ...
    }
}



ConversionService conversionService;
...
conversionService.convert(source, ResultType.class));

person user2203031    schedule 16.03.2018    source источник
comment
Является ли SampleConverter управляемым bean-компонентом spring?   -  person Essex Boy    schedule 16.03.2018
comment
@EssexBoy Действительно, я пропустил это, я создавал свой конвертер вручную. Это решило проблему, спасибо!   -  person user2203031    schedule 16.03.2018


Ответы (1)


Решено комментарием @EssexBoy, мой конвертер не был управляемым bean-компонентом Spring.

person user2203031    schedule 16.03.2018