actualización
Dado que parece que no puede hacerse en primavera (ver respuesta original) Me gustaría decir que es necesario añadir la anotación a cada método en las clases que implementan. Hay una manera obvia de hacerlo, pero supongo que si estás buscando una forma más automática, necesitarás escribir una tú mismo.
Puedo imaginarme algún tipo de postprocesador de fabricación casera que buscará una anotación específica, digamos @ApplyThisAnnotationToAllWhoInheritMe
. Una vez que encuentre esta anotación, escaneará el código fuente para heredar miembros y agregará la anotación solicitada cuando sea necesario antes de que se realice la compilación.
Independientemente, si está utilizando Spring AOP para hacer esto, parece que necesita estar en el método de implementadores. Si las clases que espera que esto ayude están fuera de su control, es posible que deba escribir su propia herramienta Spring AOP.
respuesta original
Desde el Spring 3.0 Documentation:
AspectJ sigue la regla de que las anotaciones de Java en las interfaces no se heredan.
me encontré con este bit en la sección 7.8.2 Other Spring aspects for AspectJ
, que es una parte de 7.8 Using AspectJ with Spring applications
, que me hace pensar que esto es una regla global.
Gracias; eso explica por qué mi pointcut no funciona. Sin embargo, estoy buscando uno que funcione. :-) –
@hstoerr: Después de editar su pregunta, edité mi respuesta. Avíseme si todavía es inaceptable. –
La documentación de primavera en realidad no dice que es imposible hacer coincidir algo como lo que quiero, solo que el enfoque simple que probé no funciona. Puede que haya algo extraño que se pueda hacer en Aspectj que no se me ocurra. Así que todavía estoy esperando. :-) –