8-modul · 3-dars: AOP

Daraja: Ilg'or

AOP. Spring Framework bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi AOP tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya AOP bir nechta servisda takrorlanadigan logging, transaction yoki timing kabi cross-cutting concernni asosiy biznes koddan ajratadi. Aspect shu siyosatni jamlaydi. Spring AOP join point sifatida metod bajarilishini qo'llaydi; pointcut qaysi metodlar tanlanishini, advice esa nima bajarilishini bildiradi. OOP obyekt mas'uliyatini, AOP kesishuvchi xatti-harakatni tuzadi. Before, AfterReturning, AfterThrowing, After va Around advice turlari bor. Around ProceedingJoinPoint.proceed() orqali asl chaqiruvni davom ettiradi; uni unutish biznes metod bajarilmasligiga olib keladi. @Aspect va proxy konfiguratsiyasi yoki XML AOP konfiguratsiyasi ishlatiladi. Keragidan keng pointcut parol va katta bodylarni logga chiqarishi mumkin. Spring AOP odatda JDK interface proxy yoki class-based proxy bilan ishlaydi. Shu obyekt ichidagi this.method() proxy chegarasidan o'tmaydi; private/final metodlarga class proxy cheklovlari bor. AspectJ weaving boshqa mexanizm. Tranzaksiya va async annotationlaridagi ishlamay qoldi degan holatlarni proxy chegarasidan boshlab tahlil qiling.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/8-module%28Spring%20Introduction%29.md) [Rasmiy qo‘llanma](https://docs.spring.io/spring-framework/reference/)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

@org.aspectj.lang.annotation.Around("execution(* example.study..*(..))")
public Object measure(org.aspectj.lang.ProceedingJoinPoint call) throws Throwable {
  long start = System.nanoTime();
  try { return call.proceed(); }
  finally { recordDuration(System.nanoTime() - start); }
}
// @Aspect bean ichida; recordDuration metrikani yozadigan yordamchi metod.

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, nazariya, modul-08

Interaktiv ko'rinish (viktorina, izohlar, tarix)