Обновление
Так как кажется, что это не может быть сделано весной (см. Оригинальный ответ), я бы сказал, что вам нужно добавить аннотацию к каждому методуна реализации классов.Существует очевидный способ сделать это, но я полагаю, что если вы ищете более автоматический способ, вам нужно будет написать его самостоятельно.
Я могу представить какой-то доморощенный постпроцессор, который будет выглядетьдля конкретной аннотации, скажем, @ApplyThisAnnotationToAllWhoInheritMe
.Как только он находит эту аннотацию, он сканирует исходный код на предмет наследования элементов и, при необходимости, добавляет запрошенную аннотацию перед компиляцией.
Независимо от того, если вы используете Spring AOP для этого, кажется, что он должен быть включенметод реализации.Если классы, которые, как вы надеетесь, вам помогут, находятся вне вашего контроля, вам, возможно, придется написать собственный инструмент Spring AOP.
Оригинальный ответ
Из документации Spring 3.0 :
AspectJ следует правилу Java о том, что аннотации на интерфейсах не наследуются.
Я нашел этот бит в разделе7.8.2 Other Spring aspects for AspectJ
, который является частью 7.8 Using AspectJ with Spring applications
, что заставляет меня думать, что это глобальное правило.