我已经实现了一些自定义注释。所有这些都在迁移到grails 3之前工作,但是在我们迁移代码之后,应用程序什么也没有抛出,一切正常,但注释只是被忽略了。
这是我的@annotation之一:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface UnoMetricsCounter {
int increment() default 1
String metricPrefix()
}
我的看点:
@Aspect
@Component
class UnoMetricsAspect {
private static final log = LogFactory.getLog(getClass())
SpringSecurityService springSecurityService
@Before("@annotation( com.enterprise.annotation.UnoMetricsCounter)")
void counterMetric(JoinPoint jp){
String prefix = jp.getSignature().getMethod().getAnnotation(UnoMetricsCounter.class).metricPrefix()
Long increment = (Long)jp.getSignature().getMethod().getAnnotation(UnoMetricsCounter.class).increment()
log.info("IncrementCounterMetric has been called with prefix: "+prefix)
MetricsUtils.incrementCounter(UnoMetricsUtils.addInfoToMetricName(UnoMetricsUtils."${prefix}", springSecurityService?.getCurrentUser()?.location?.name), UnoMetricsUtils.REGISTER_GRAPHITE_NAME,increment)
}
...
}
我有另一个自定义注释,没有任何方面也无法正常工作。
我不确定发生了什么,因为所有其他非自定义注释都能正常工作,我在google中找不到运气。有任何想法吗?