- Cos'è l'AOP?
- Dove utilizzare AOP?
- Concetti e terminologia dell'AOP
- Implementazione dell'AOP primaverile
Programmazione orientata agli aspetti (AOP) integra gli OOP nel senso che fornisce anche modularità. Ma l’unità chiave della modularità è l’aspetto piuttosto che la classe.
L'AOP suddivide la logica del programma in parti distinte (chiamate preoccupazioni). Viene utilizzato per aumentare la modularità di preoccupazioni trasversali .
UN preoccupazione trasversale è una preoccupazione che può influenzare l'intera applicazione e dovrebbe essere centralizzata il più possibile in un'unica posizione nel codice, come la gestione delle transazioni, l'autenticazione, la registrazione, la sicurezza, ecc.
Perché utilizzare l'AOP?
Fornisce il modo collegabile per aggiungere dinamicamente la preoccupazione aggiuntiva prima, dopo o attorno alla logica effettiva. Supponiamo che ci siano 10 metodi in una classe come indicato di seguito:
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(){...} }
Esistono 5 metodi che iniziano da m, 2 metodi che iniziano da n e 3 metodi che iniziano da p.
Comprendere lo scenario Devo mantenere il registro e inviare la notifica dopo aver chiamato i metodi che iniziano da m.
Problema senza AOP Possiamo chiamare metodi (che mantengono il registro e inviano notifiche) dai metodi che iniziano con m. In tale scenario, dobbiamo scrivere il codice in tutti e 5 i metodi.
Ma, se in futuro il cliente dice che non devo inviare la notifica, devi modificare tutti i metodi. Porta al problema della manutenzione.
Soluzione con AOP Non dobbiamo chiamare metodi dal metodo. Ora possiamo definire le preoccupazioni aggiuntive come il mantenimento del registro, l'invio di notifiche ecc. nel metodo di una classe. La sua voce è fornita nel file xml.
In futuro, se il cliente dice di rimuovere la funzionalità di notifica, dovremo modificare solo nel file xml. Pertanto, la manutenzione è semplice in AOP.
nuova riga in Python
Dove utilizzare AOP?
AOP viene utilizzato principalmente nei seguenti casi:
- per fornire servizi aziendali dichiarativi come la gestione dichiarativa delle transazioni.
- Consente agli utenti di implementare aspetti personalizzati.
Concetti e terminologia dell'AOP
I concetti e la terminologia AOP sono i seguenti:
- Punto di unione
- Consiglio
- Taglio a punti
- introduzione
- Oggetto bersaglio
- Aspetto
- Intercettore
- Proxy AOP
- Tessitura
Punto di unione
Il punto di join è qualsiasi punto del programma, ad esempio l'esecuzione del metodo, la gestione delle eccezioni, l'accesso ai campi, ecc. Spring supporta solo il punto di join dell'esecuzione del metodo.
Consiglio
Il consiglio rappresenta un'azione intrapresa da un aspetto in un particolare punto di unione. Esistono diversi tipi di consigli:
- Prima del consiglio : viene eseguito prima di un punto di join.
- Dopo aver restituito consigli : viene eseguito dopo il completamento normale di un punto di giunzione.
- Dopo aver lanciato il consiglio : viene eseguito se il metodo esce lanciando un'eccezione.
- Dopo (finalmente) il Consiglio : viene eseguito dopo un punto di join indipendentemente dall'uscita del punto di join, sia essa normale o eccezionale.
- Intorno ai consigli : Viene eseguito prima e dopo un punto di unione.
Taglio a punti
È un linguaggio di espressione di AOP che corrisponde ai punti di unione.
introduzione
Significa l'introduzione di metodi e campi aggiuntivi per un tipo. Ti consente di introdurre una nuova interfaccia a qualsiasi oggetto consigliato.
Oggetto bersaglio
È l'oggetto cioè farsi consigliare da uno o più aspetti. È noto anche come oggetto proxy in Spring perché Spring AOP viene implementato utilizzando i proxy di runtime.
Aspetto
È una classe che contiene consigli, joinpoint ecc.
Intercettore
È un aspetto che contiene un solo consiglio.
Proxy AOP
Viene utilizzato per implementare i contratti aspetti, creati dal framework AOP. Sarà un proxy dinamico JDK o un proxy CGLIB nel framework primaverile.
Tessitura
È il processo di collegamento dell'aspetto con altri tipi di applicazioni o oggetti per creare un oggetto consigliato. La tessitura può essere eseguita in fase di compilazione, caricamento o runtime. Spring AOP esegue la tessitura in fase di esecuzione.
matrice in linguaggio c
Implementazioni AOP
Le implementazioni AOP sono fornite da:
- AspettoJ
- AOP primaverile
- JBoss AOP
AOP primaverile
Spring AOP può essere utilizzato nei 3 modi indicati di seguito. Ma l'approccio ampiamente utilizzato è Spring AspectJ Annotation Style. Di seguito sono riportati i 3 modi per utilizzare l'AOP primaverile:
- Entro Spring1.2 Vecchio stile (basato su DTD) (supportato anche in Spring3)
- Per stile di annotazione AspectJ
- Entro lo stile di configurazione XML di Spring (basato su schema)
Collegamenti di riferimento
Fonte Primavera AOPAPI AOP Spring Source
Wikipedia