logo

Wiosenny samouczek AOP

  1. Co to jest AOP?
  2. Gdzie używać AOP?
  3. Koncepcje i terminologia AOP
  4. Wiosenne wdrożenie AOP

Programowanie aspektowe (AOP) uzupełnia OOP w tym sensie, że zapewnia również modułowość. Jednak kluczową jednostką modułowości jest aspekt, a nie klasa.

AOP dzieli logikę programu na odrębne części (zwane problemami). Służy do zwiększenia modułowości poprzez obawy przekrojowe .

A obawa przekrojowa to problem, który może mieć wpływ na całą aplikację i powinien być możliwie scentralizowany w jednym miejscu w kodzie, takim jak zarządzanie transakcjami, uwierzytelnianie, rejestrowanie, bezpieczeństwo itp.


Dlaczego warto używać AOP?

Zapewnia wtykowy sposób dynamicznego dodawania dodatkowych problemów przed, po lub wokół rzeczywistej logiki. Załóżmy, że w klasie znajduje się 10 metod, jak podano poniżej:

 class A{ public void m1(){...} public void m2(){...} public void m3(){...} public void m4(){...} public void m5(){...} public void n1(){...} public void n2(){...} public void p1(){...} public void p2(){...} public void p3(){...} } 

Istnieje 5 metod rozpoczynających się od m, 2 metody rozpoczynające się od n i 3 metody rozpoczynające się od p.

Zrozumienie scenariusza Muszę prowadzić dziennik i wysyłać powiadomienia po wywołaniu metod zaczynających się od m.

Problem bez AOP Metody (które przechowują dziennik i wysyłają powiadomienia) możemy wywoływać z metod zaczynających się od m. W takim scenariuszu musimy napisać kod we wszystkich 5 metodach.

Ale jeśli klient powie w przyszłości, że nie muszę wysyłać powiadomienia, musisz zmienić wszystkie metody. Prowadzi to do problemów konserwacyjnych.

Rozwiązanie z AOP Nie musimy wywoływać metod z metody. Teraz możemy zdefiniować dodatkowe kwestie, takie jak prowadzenie dziennika, wysyłanie powiadomień itp. w metodzie klasy. Jego wpis znajduje się w pliku xml.

W przyszłości, jeśli klient każe usunąć funkcję powiadamiania, będziemy musieli dokonać zmian tylko w pliku xml. Zatem konserwacja w AOP jest łatwa.

css podkreśl tekst

Gdzie używać AOP?

AOP jest najczęściej używany w następujących przypadkach:

  • w celu świadczenia deklaratywnych usług dla przedsiębiorstw, takich jak deklaratywne zarządzanie transakcjami.
  • Umożliwia użytkownikom wdrażanie niestandardowych aspektów.

Koncepcje i terminologia AOP

Koncepcje i terminologia AOP są następujące:

  • Połącz punkt
  • Rada
  • Cięcie punktowe
  • Wstęp
  • Obiekt docelowy
  • Aspekt
  • Przechwytywacz
  • Pełnomocnik AOP
  • Tkactwo

Połącz punkt

Punkt łączenia to dowolny punkt w programie, taki jak wykonanie metody, obsługa wyjątków, dostęp do pola itp. Spring obsługuje tylko punkt łączenia wykonania metody.


Rada

Porada reprezentuje akcję podjętą przez aspekt w konkretnym punkcie połączenia. Istnieją różne rodzaje porad:

  • Przed radą : jest wykonywany przed punktem złączenia.
  • Po zwróceniu porady : jest wykonywany po normalnym zakończeniu wspólnego punktu.
  • Po rzuceniu rady : wykonuje się, jeśli metoda zakończy działanie poprzez zgłoszenie wyjątku.
  • Po (wreszcie) Radzie : wykonuje się po punkcie złączenia, niezależnie od wyjścia z punktu złączenia, niezależnie od tego, czy jest to powrót normalny, czy wyjątkowy.
  • Wokół porad : Wykonuje się przed i po punkcie łączenia.

Cięcie punktowe

Jest to język wyrażeń AOP, który dopasowuje punkty łączenia.


Wstęp

Oznacza to wprowadzenie dodatkowych metod i pól dla typu. Pozwala na wprowadzenie nowego interfejsu do dowolnego polecanego obiektu.


Obiekt docelowy

Jest to przedmiot, czyli kierowanie się jednym lub większą liczbą aspektów. Jest również znany jako obiekt proxy na wiosnę, ponieważ Spring AOP jest implementowany przy użyciu serwerów proxy w czasie wykonywania.


Aspekt

Jest to klasa zawierająca porady, punkty łączenia itp.


Przechwytywacz

Jest to aspekt, który zawiera tylko jedną radę.


Pełnomocnik AOP

Służy do implementacji kontraktów aspektowych, stworzonych przez framework AOP. Będzie to dynamiczny serwer proxy JDK lub serwer proxy CGLIB w ramach wiosennych.


Tkactwo

Jest to proces łączenia aspektu z innymi typami aplikacji lub obiektami w celu stworzenia zalecanego obiektu. Tkanie można wykonać w czasie kompilacji, ładowania lub w czasie wykonywania. Spring AOP wykonuje tkanie w czasie wykonywania.

znak na ciąg Java

Wdrożenia AOP

Wdrożenia AOP zapewniają:

  1. AspektJ
  2. Wiosenny AOP
  3. JBoss AOP

Wiosenny AOP

Spring AOP może być używany na 3 sposoby podane poniżej. Jednak powszechnie stosowanym podejściem jest styl adnotacji Spring AspectJ. Poniżej podano 3 sposoby wykorzystania wiosennego AOP:

  1. Do Spring1.2 Stary styl (oparty na dtd) (obsługiwany również w Spring3)
  2. Według stylu adnotacji AspectJ
  3. Według stylu konfiguracji Spring XML (oparty na schemacie)

Linki referencyjne

Źródło wiosenne AOP
Spring Source API AOP
Wikipedia