AOP z Spring Framework
Jednym z kluczowych składników Spring Framework jest Aspect oriented programming (AOP)struktura. Programowanie zorientowane aspektowo polega na rozbiciu logiki programu na odrębne części zwane tak zwanymi problemami. Nazywane są funkcje obejmujące wiele punktów aplikacjicross-cutting concernsi te przekrojowe kwestie są koncepcyjnie oddzielone od logiki biznesowej aplikacji. Istnieje wiele typowych dobrych przykładów aspektów, takich jak logowanie, audyt, transakcje deklaratywne, bezpieczeństwo, buforowanie itp.
Kluczową jednostką modułowości w OOP jest klasa, podczas gdy w AOP jednostką modułowości jest aspekt. Dependency Injection pomaga oddzielić obiekty aplikacji od siebie, a AOP pomaga oddzielić problemy związane z cięciem krzyżowym od obiektów, na które mają one wpływ. AOP jest jak wyzwalacze w językach programowania, takich jak Perl, .NET, Java i inne.
Moduł Spring AOP zapewnia przechwytywacze do przechwytywania aplikacji. Na przykład, gdy metoda jest wykonywana, możesz dodać dodatkowe funkcje przed lub po wykonaniu metody.
Terminologie AOP
Zanim zaczniemy pracować z AOP, zapoznajmy się z pojęciami i terminologią AOP. Te terminy nie są specyficzne dla Springa, są raczej związane z AOP.
Sr.No | Warunki i opis |
---|---|
1 | Aspect Jest to moduł zawierający zestaw interfejsów API zapewniających wymagania przekrojowe. Na przykład moduł rejestrowania będzie nazywał się aspektem AOP do rejestrowania. Aplikacja może mieć wiele aspektów w zależności od wymagań. |
2 | Join point Stanowi to punkt w aplikacji, w którym można podłączyć aspekt AOP. Można też powiedzieć, że jest to rzeczywiste miejsce w aplikacji, w którym zostanie wykonana akcja z wykorzystaniem frameworka Spring AOP. |
3 | Advice Jest to rzeczywista akcja, która ma zostać wykonana przed lub po wykonaniu metody. Jest to rzeczywisty fragment kodu, który jest wywoływany podczas wykonywania programu przez framework Spring AOP. |
4 | Pointcut Jest to zestaw co najmniej jednego punktu złączenia, w którym należy wykonać poradę. Możesz określić punkty za pomocą wyrażeń lub wzorców, jak zobaczymy w naszych przykładach AOP. |
5 | Introduction Wprowadzenie pozwala na dodanie nowych metod lub atrybutów do istniejących klas. |
6 | Target object Obiekt, na który zwraca uwagę jeden lub więcej aspektów. Ten obiekt zawsze będzie obiektem proxy, nazywanym również obiektem zalecanym. |
7 | Weaving Tkanie to proces łączenia aspektów z innymi typami aplikacji lub obiektami w celu utworzenia zalecanego obiektu. Można to zrobić w czasie kompilacji, wczytywania lub w czasie wykonywania. |
Rodzaje porad
Aspekty wiosenne mogą działać z pięcioma rodzajami porad wymienionych poniżej -
Sr.No | Porady i opis |
---|---|
1 | before Uruchom poradę przed wykonaniem metody a. |
2 | after Uruchom poradę po wykonaniu metody, niezależnie od jej wyniku. |
3 | after-returning Uruchom poradę po wykonaniu metody a tylko wtedy, gdy metoda zakończy się pomyślnie. |
4 | after-throwing Uruchamiaj porady po wykonaniu metody a tylko wtedy, gdy metoda kończy działanie przez zgłoszenie wyjątku. |
5 | around Uruchom poradę przed i po wywołaniu zalecanej metody. |
Wdrażanie niestandardowych aspektów
Wiosna wspiera @AspectJ annotation style podejście i schema-basedpodejście do wdrażania niestandardowych aspektów. Te dwa podejścia zostały szczegółowo wyjaśnione w kolejnych sekcjach.
Sr.No | Podejście i opis |
---|---|
1 | Oparty na schemacie XML Aspekty są implementowane przy użyciu zwykłych klas wraz z konfiguracją opartą na XML. |
2 | Oparty na @AspectJ @AspectJ odnosi się do stylu deklarowania aspektów jako zwykłych klas Java z adnotacjami Java 5. |