La documentación de Spring aconseja colocar la anotación @Transactional en la clase/método concreto en lugar de la interfaz. La razón de esto se ha cubierto el desbordamiento de pila en muchas ocasiones, por ejemplo:Spring @Transactional v Spring Security @ Comportamiento incoherente segmentado
Spring Security comportamiento difiere @Secured; la mayoría de la documentación muestra colocar la anotación en la interfaz. De hecho, parece funcionar ya sea que anote la interfaz o la clase concreta, independientemente de si utiliza proxies JDK o CGLib.
Parece una solución superior. Entonces, ¿por qué la inconsistencia? Una respuesta a la pregunta anterior sugiere un impacto en el rendimiento ... pero seguramente el rendimiento es tan importante para la seguridad?
¿Y cómo se soluciona la solución @Secured con el problema de la herencia del diamante (la clase implementa 2 interfaces, ambas tienen el mismo método @Secured de forma diferente)?