logo

Vår AOP-opplæring

  1. Hva er AOP?
  2. Hvor bruker AOP?
  3. AOP-konsepter og terminologi
  4. Vår AOP-implementering

Aspektorientert programmering (AOP) komplimenterer OOPs i den forstand at det også gir modularitet. Men nøkkelenheten for modularitet er aspekt enn klasse.

AOP bryter programlogikken i distinkte deler (kalt bekymringer). Den brukes til å øke modulariteten med tverrgående bekymringer .

EN tverrgående bekymring er en bekymring som kan påvirke hele applikasjonen og bør sentraliseres på ett sted i kode som mulig, for eksempel transaksjonshåndtering, autentisering, logging, sikkerhet etc.


Hvorfor bruke AOP?

Det gir den pluggbare måten å dynamisk legge til den ekstra bekymringen før, etter eller rundt den faktiske logikken. Anta at det er 10 metoder i en klasse som gitt nedenfor:

 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(){...} } 

Det er 5 metoder som starter fra m, 2 metoder som starter fra n og 3 metoder som starter fra s.

Forstå scenariet Jeg må opprettholde logg og sende varsling etter anropsmetoder som starter fra m.

Problem uten AOP Vi kan kalle metoder (som opprettholder logg og sender varsling) fra metodene som starter med m. I et slikt scenario må vi skrive koden i alle de 5 metodene.

Men hvis klienten sier i fremtiden at jeg ikke trenger å sende varsel, må du endre alle metodene. Det fører til vedlikeholdsproblemet.

Løsning med AOP Vi trenger ikke kalle metoder fra metoden. Nå kan vi definere den ekstra bekymringen som å opprettholde logg, sende melding osv. i metoden til en klasse. Dens oppføring er gitt i xml-filen.

I fremtiden, hvis klienten sier å fjerne varslerfunksjonaliteten, må vi bare endre i xml-filen. Så vedlikehold er enkelt i AOP.

f-streng pyton

Hvor bruker AOP?

AOP brukes mest i følgende tilfeller:

  • å tilby deklarative bedriftstjenester som deklarativ transaksjonsstyring.
  • Det lar brukere implementere tilpassede aspekter.

AOP-konsepter og terminologi

AOP-konsepter og terminologier er som følger:

  • Bli med punkt
  • Råd
  • Pointcut
  • Introduksjon
  • Målobjekt
  • Aspekt
  • Interceptor
  • AOP Proxy
  • Veving

Bli med punkt

Join point er et hvilket som helst punkt i programmet som metodeutførelse, unntakshåndtering, felttilgang etc. Spring støtter kun metodeutførelse joinpunkt.


Råd

Råd representerer en handling utført av et aspekt ved et bestemt sammenføyningspunkt. Det finnes ulike typer råd:

  • Før råd : den kjøres før et sammenføyningspunkt.
  • Etter retur av råd : den kjøres etter at et felles punkt er fullført normalt.
  • Etter kasteråd : den kjøres hvis metoden avsluttes ved å kaste et unntak.
  • Etter (endelig) råd : den kjøres etter et sammenføyningspunkt uavhengig av sluttpunkt for sammenføyning enten det er normalt eller eksepsjonelt retur.
  • Rundt Råd : Den kjøres før og etter et sammenføyningspunkt.

Pointcut

Det er et uttrykksspråk for AOP som matcher join-poeng.


Introduksjon

Det betyr introduksjon av tilleggsmetode og felt for en type. Den lar deg introdusere nytt grensesnitt til ethvert anbefalt objekt.


Målobjekt

Det er objektet, det vil si å bli veiledet av ett eller flere aspekter. Det er også kjent som proxy-objekt om våren fordi Spring AOP er implementert ved bruk av runtime proxyer.


Aspekt

Det er en klasse som inneholder råd, joinpoints etc.


Interceptor

Det er et aspekt som bare inneholder ett råd.


AOP Proxy

Den brukes til å implementere aspektkontrakter, opprettet av AOP-rammeverket. Det vil være en JDK dynamisk proxy eller CGLIB proxy i vårramme.


Veving

Det er prosessen med å koble aspekt med andre applikasjonstyper eller objekter for å lage et anbefalt objekt. Veving kan gjøres ved kompileringstid, lastetid eller kjøretid. Spring AOP utfører veving under kjøring.

delstreng streng java

AOP-implementeringer

AOP-implementeringer leveres av:

  1. AspektJ
  2. Vårens AOP
  3. JBoss AOP

Vårens AOP

Spring AOP kan brukes på 3 måter gitt nedenfor. Men den mye brukte tilnærmingen er Spring AspectJ Annotation Style. De 3 måtene å bruke vårens AOP på er gitt nedenfor:

  1. Av Spring1.2 Gammel stil (dtd-basert) (støttes også i Spring3)
  2. Av AspectJ-kommentarstil
  3. By Spring XML-konfigurasjonsstil (skjemabasert)

Referanselenker

Vårkilde AOP
Spring Source AOP API
Wikipedia