To co wynika z tego pytania:Włącz Wiosną AOP lub AspectJ
Spring autowired bean for @Aspect aspect is null
Moje pierwsze zrozumienie było to, że podczas korzystania z wiosny AOP, zajęcia z adnotacją @Aspect są tworzone jako wiosennych fasoli, więc udało Dependency Injection działałby normalnie. Jednak wydaje się, że obiekt z @Aspect adnotacji tworzony jest jako pojedyncza zewnątrz pojemnika wiosny, stąd ja konieczności konfigurowania go w XML jak tak, aby umożliwić mu jak sprężyna udało Fasola:
<bean id="aspect" class="com.mysite.aspect" factory-method="aspectOf" />
ten teraz całkowicie mnie pomylił. Myślałem następująca konfiguracja użyłby sprężyny AOP:
<context:component-scan base-package="com.mysite.aspectPackage"/>
<aop:aspectj-autoproxy/>
Więc to skanowanie za pomocą komponentu adnotacji @Aspect-skan tworzenia fasolę aspekcie, a następnie AutoProxy stworzyłoby beanPostProcessor który Prokurenci wszystkie ziarna w moim związku z odpowiednim Rada. Następnie pomyślałem o włączeniu aspektu I potrzebowałbym zupełnie innej konfiguracji XML (której, nawiasem mówiąc, nie mogę znaleźć przykładu w dokumentacji). To właśnie ta konfiguracja używa aspektJ do tworzenia aspektów, które znajdowałyby się poza moim kontenerem lub które działałyby poprzez manipulowanie kodem bajtowym zamiast proxy.
Uwaga
To nie jest pytanie o różnicę między AOP wiosna i kształtu J, to jest dobrze przegubowy tutaj:
Próbowałem tego ze sprężyną 4.3 i aspektem adnotacji z '@ Aspect'' @ Component' działa idealnie dobrze nawet z DI, tak jak @Bozho napisał w swojej odpowiedzi – csharpfolk