ZAWWW-2st1.2-w12.tresc-1.0-Slajd18
Spring i AspectJ
Moduł Spring AOP oferuje podstawową funkcjonalność programowania aspektowego, polegającą na możliwości definiowania aspektów, punktów złączeń, oraz rad. Istnieją bardzo zaawansowane systemy programowania aspektowego, np. AspectJ i AspectWerkz. Spring umożliwia integrację z tymi środowiskami. Slajd przedstawia przykład składni wykorzystywanej w języku AspectJ. Słowo kluczowe pointcut wprowadza definicję punktu złączenia (2), w tym przypadku punktem złączenia jest wywołanie dowolnej metody z klasy umieszczonej w pakiecie zawierającym w nazwie słowo "spring" (wzorzec call *spring.*.*) i posiadającej parametry formalne typu int i String (wzorzec (int,String…)). Drugim alternatywnym warunkiem wystąpienia punktu złączenia jest wywołanie operatora new (wzorzec execute(new(..))). Rada zdefiniowana jest po słowie kluczowym before() (3). Jeśli flaga enabled jest ustawiona na wartość true i prawdziwy jest warunek wystąpienia punktu złączenia toBeTraced(), wówczas wykonuje się kod rady. W pierwszym kroku następuje pobranie argumentów wywołania punktu złączenia, a później może wystąpić dowolny kod obsługi rady.