0

我有一个与带有注释的方法相匹配的方面(否则此代码不会被调用),现在我使用 org.springframework.core.annotation.AnnotationUtils 来获取注释,但这给了我最后一个 nullPointerException我在 tomcat 中运行应用程序时的行。它在单元测试中运行良好。

before() : runWithContext() {
    MethodSignature methodSignature = (MethodSignature) thisJoinPoint
            .getSignature();
    Method targetMethod = methodSignature.getMethod();
    RunWithContext anno = AnnotationUtils.getAnnotation(targetMethod, RunWithContext.class);
    ContextInvocationUtils.replaceContext(anno.someValue());
}

tomcat 以及单元测试启动一个弹簧容器,与我的编织代码所在的位置完全相同(它是弹簧集成出站通道适配器的消息处理程序)

我的注释看起来像这样

@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD, ElementType.TYPE})
@Inherited
public @interface RunWithContext {

    String[] authorities() default {};

}

编辑:

调用 targetMethod.getAnnotation 有效,如果 org.springframework.core.annotation.AnnotationUtils.getAnnotation(Method, Class) 在我的情况下没有正确获得注释,是否有任何提示?

4

0 回答 0