diff --git a/org.springframework.core/src/main/java/org/springframework/core/annotation/AnnotationUtils.java b/org.springframework.core/src/main/java/org/springframework/core/annotation/AnnotationUtils.java
index 484ce377e78..f67071365b2 100644
--- a/org.springframework.core/src/main/java/org/springframework/core/annotation/AnnotationUtils.java
+++ b/org.springframework.core/src/main/java/org/springframework/core/annotation/AnnotationUtils.java
@@ -75,7 +75,17 @@ public abstract class AnnotationUtils {
* @see org.springframework.core.BridgeMethodResolver#findBridgedMethod(Method)
*/
public static A getAnnotation(Method method, Class annotationType) {
- return BridgeMethodResolver.findBridgedMethod(method).getAnnotation(annotationType);
+ Method resolvedMethod = BridgeMethodResolver.findBridgedMethod(method);
+ A ann = resolvedMethod.getAnnotation(annotationType);
+ if (ann == null) {
+ for (Annotation metaAnn : resolvedMethod.getAnnotations()) {
+ ann = metaAnn.annotationType().getAnnotation(annotationType);
+ if (ann != null) {
+ break;
+ }
+ }
+ }
+ return ann;
}
/**