spring aop implementacja

Spring AOP – Implementacja aspektów

W jednym z moich artykułów pisałem już o Spring AOP i było to wprowadzenie do tematu programowania aspektowego w Springu. Teraz przyszedł czas na implementacje aspektów w Springu. W kolejnym odcinku na moim kanale pokazuję jak zaimplementować najczęściej występujące aspekty.

 

Programowanie aspektowe (Aspect Oriented Programming) jest paradygmat programowania, który ma na celu zwiększenie modularności kodu. Dzieje się to poprzez dodawanie specjalnych porad (advice), które pozwalają na dodanie nowej funkcjonalności, nie zmieniając istniejącego kodu. Natomiast sam aspekt to klasa, w której mamy zdefiniowane punkty przecięcia (pointcut) i porady (advice).

 

Najważniejszą zaletą programowania aspektowego jest to, że aspekty dodajemy z boku kodu właściwego naszej aplikacji. Nie musimy przy tym zmieniać żadnego istniejącego kodu naszej aplikacji. Pozwala to w dosyć dowolny sposób wpiąć nowy kod do istniejącej aplikacji w bardzo wielu miejscach bez konieczności refaktoryzacji (oszczędzamy czas, który stracilibyśmy na refaktoryzację).

Pamiętaj, że aspektów nie należy nadużywać, ponieważ może prowadzić to do sytuacji, w które kod biznesowy naszej aplikacji, zamiast znaleźć się w jednym miejscu, zostanie porozrzucany w różnych aspektach (w różnych komponentach). Aspekty powinny być używane do wprowadzania dodatkowych funkcjonalności do naszego kodu, a nie do realizacji podstawowych zadań (czyli implementacji kodu biznesowego)

W tym odcinku zaczynam od omówienia podstawowych założeń programowania aspektowego. Po czym przechodzę do omówienia przypadków, w których można zastosować aspekty. A główną część filmu poświęcam na implementację 3 różnych aspektów.

Aspekty, które implementuje to:

  • aspekt logujący przed i po wywołaniu każdej metody publiczne (before i after)
  • aspekt mierzący czas wywołań metod kontrolerów (around)
  • aspekt dodatkowego uwierzytelnienia uruchamiany przy pomocy własnej adnotacji

 

W tej części znajdziesz:

  • 00:00 Wstęp
  • 00:18 Po co potrzebne są aspekty?
  • 02:39 W jakich sytuacjach stosować aspekty?
  • 06:30 Implementacja aspektu logującego (Before, After)
  • 08:14 Definiowanie punktu przecięcia (Pointcut)
  • 11:07 Implementacja Advice (Before, After)
  • 15:03 Implementacja aspektu mierzącego czas wywołania metod (Around)
  • 20:54 Implementacja aspektu z dodatkowy uwierzytelnieniem (własne adnotacja)
  • 21:14 Dodaję własną adnotację
  • 22:34 Dodajemy aspekt dla dodatkowej autoryzacja (Before)
  • 23:33 Jak podłączyć adnotację do aspektu (Dodajemy Pointcut dla adnotacji)
  • 24:17 Jak przekazać dane autoryzacyjne do aspektu?
  • 33:55 Włącznie komunikatów błędów w Spring Boot

 

Powiązane artykuły:

Spring AOP – jak używać?

Kurs Hibernate i JPA

Kurs Spring Boot #08 – Spring Cache:
https://www.youtube.com/watch?v=lWv3uBLO2LU

Dokumentacja Spring Aop:
https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#aop-pointcuts-examples

Github:
https://github.com/matdabrowski/youtube/tree/main/SpringAop

 

Mateusz Dąbrowski

Cześć jestem Mateusz, zajmuję się programowaniem już ponad 12 lat z czego ponad 8 programuję w Javie. Zapraszam Cię do lektury mojego bloga. Możesz przeczytać więcej o mnie >>TUTAJ<<

2 thoughts to “Spring AOP – Implementacja aspektów”

  1. komentarz do komentarza 😀 Nie „sklada sie z wielu klas”, ale przecina (obejmuje?) wiele klas

Komentarze są zamknięte.