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.