Почему мой аспект не обнаружен для контроллера Джерси (с помощью пользовательской аннотации)?

Я хочу создать Aspect на контроллере Джерси, чтобы измерить, сколько времени потребуется для выполнения сервисов. Я'я борюсь против моего pointcut, так как это нет обнаружен и мой аспект никогда не запускается.

Я пытался использовать много точек, таких как:

execution(@Monitor * *.*(..))
execution(public * *(..))
change the order of @Aspect and @Component

Added a pointcut like this:
@Pointcut("execution(@Monitor * *.*(..))")
public void monitorRequestTargets(){}
@Around("monitorRequestTargets()")

Tried using AOP and CGLIB


Also tried changing the order of configuration in context.xml

Затмение обнаруживает, что мои методы рекомендуются моим аспектом, но это не так.t выполняется во время выполнения. Не могли бы вы дать мне подсказку о том, почему аспект не создан или pointcut нене запустить?

Мой код следующий.

context.xml




    
    

    
    

    

    


мойMonitorAspect

@Component
@Aspect
public class MonitorAspect
{
    private static final Logger logger = LoggerFactory.getLogger(MonitorAspect.class);

    @Around("@annotation(com.mypackage.Monitor)")
    public void logTimeUsage(ProceedingJoinPoint joinPoint) throws Throwable 
    {
        // Store executing method
        String method = joinPoint.getSignature().getName();

        // Track time
        long startTime = System.currentTimeMillis();
        joinPoint.proceed();
        long endTime = System.currentTimeMillis();

        long duration = endTime - startTime;

        // Log time consumed by executing method
        logger.info(method + ": " + duration);

    }
}

Пользовательская аннотация My Monitor:

@Target(value = {ElementType.METHOD})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface Monitor
{

}

Мой контроллер, который я хочу использовать аспект:

    @Monitor
    @POST
    @Consumes("application/json")
    @Produces("application/json")
    @Path("/{tkn}/test/")
    public Response test(
            @Context HttpServletRequest httpReq,
            @Context UriInfo uri,
                     String enrollReqJson
            ) {
          Thread.sleep(1000); // Implementation is not important
    }

мойpom.xml



    org.springframework
    spring-context
    ${org.springframework-version}
    
        
        
            commons-logging
            commons-logging
        
    



    org.springframework
    spring-orm
    ${org.springframework-version}


    org.springframework
    spring-tx
    ${org.springframework-version}


    org.springframework
    spring-webmvc
    ${org.springframework-version}


    org.springframework
    spring-orm
    ${org.springframework-version}

  

    com.sun.jersey.contribs
    jersey-spring
    1.14
    
        
            org.springframework
            spring-aop
        
        
            org.springframework
            spring
        
        
            org.springframework
            spring-core
        
        
            org.springframework
            spring-web
        
        
            org.springframework
            spring-beans
        
        
            org.springframework
            spring-context
        
    


    com.sun.jersey
    jersey-bundle
    1.8

        
    com.sun.jersey.contribs
    jersey-multipart
    1.8

        

    org.aspectj
    aspectjrt
    ${org.aspectj-version}


    org.springframework
    spring-aop
    ${org.springframework-version}


    org.aspectj
    aspectjweaver
    ${org.aspectj-version}

Ответы на вопрос(3)

Ваш ответ на вопрос