AOP不能使用Annotation在JAVA中工作

时间:2016-09-14 13:20:09

标签: java aop spring-aop

有一个java类" Test2"包含4-5个方法,并且只有1个方法(notifyTransferStatus)我想将可事件注释作为。方法执行没有问题,但注释不起作用。

@Eventable(name = TransferStatus)
    public ResponseEntity<String> notifyTransferStatus(EventRequest request) {
//method execution successfully 

JSONObject  jsonRequestPayload = createJsonData(callEvent, transferStatus, request);
            LOG.info("jsonRequestPayload created successfully");

clientResponse = transferUtil.notify(transferStatusUrl, jsonRequestPayload);

} 

对应的Aspect类。

@SuppressWarnings("unchecked")
 @Around("(execution(* com.test.Test1.*(..))" +
            "|| execution(* com.test.Test2.*(..))" +
            ")" + " && @annotation(eventableAnnotation)")
    public Object eventProcessingAdvice(ProceedingJoinPoint proceedingJoinPoint,  Eventable eventableAnnotation) throws Throwable {
//some logic for handling annotation
// use name if provided
    if (eventableAnnotation.name() != null) {
        eventId = eventableAnnotation.name();
        counterName = eventId;
    }
}

所以,上面的方法&#34; notifyTransferStatus&#34;是Test2类的一部分,注释不起作用,逻辑在方法内完美执行。

但是Test1.java只包含一个方法,并且注释工作正常。

所以基本的区别是一个类只包含1个方法,而其他类包含4-5个方法。

0 个答案:

没有答案