Esto es consecuencia de lo anterior pregunta:Habilitar primavera AOP o AspectJ
Spring autowired bean for @Aspect aspect is null
Mi comprensión inicial fue que cuando se utiliza la primavera AOP, clases con anotada @Aspect se crean como granos de primavera logrado, por lo que la inyección de dependencias funcionaría de manera normal. Sin embargo, parece que un objeto con la anotación @Aspect se crea como un conjunto unitario fuera del recipiente de la primavera, de ahí que yo tenga que configurarlo en XML como tal a fin de que como un resorte bean gestionado:
<bean id="aspect" class="com.mysite.aspect" factory-method="aspectOf" />
Este ahora me ha confundido por completo Pensé que la siguiente configuración usaría la primavera AOP:
<context:component-scan base-package="com.mysite.aspectPackage"/>
<aop:aspectj-autoproxy/>
por lo que sería explorar en busca de anotaciones @Aspect utilizando el componente de exploración creación de granos de aspecto, y luego autoproxy crearía un beanPostProcessor el que actúe como su apoderado todos los granos dentro de mi contexto con la adecuada Consejo. Luego pensé en habilitar un aspecto. Necesitaría una configuración XML completamente diferente (que, por cierto, no puedo encontrar un ejemplo en la documentación). Sería esta configuración la que usa aspectJ para crear aspectos que estarían fuera de mi contenedor o que funcionan manipulando bytecode en lugar de usar proxy.
Nota
Esto no es una pregunta sobre la diferencia entre el AOP primavera y el aspecto J, esto está bien articulado aquí:
Probé esto con la primavera 4.3 y el aspecto de anotación con '@ Aspect'' @ Component' funciona perfectamente bien incluso con DI, al igual que @Bozho escribió en su respuesta – csharpfolk