Interesting question: Considering annotations on overridden method in a base class could be useful in scenarios like this:

Given a base interface like this:
```java
interface BaseFooRepository extends Repository<Foo, Long>{
   @Query(...)
   Iterable<Foo> findAll();
}
```

... and a concrete interface like this:
```java
interface ConcreteFooRepository extends BaseFooRepository{
  List<Foo> findAll(); //more concrete return type with semantics of base method ...
}
```

If we want to support that then we should go with AnnotationUtils.findAnnotation(…).