AOP con Spring Framework

Uno dei componenti chiave di Spring Framework è il Aspect oriented programming (AOP)struttura. La programmazione orientata agli aspetti comporta la scomposizione della logica del programma in parti distinte chiamate cosiddette preoccupazioni. Vengono chiamate le funzioni che si estendono su più punti di un'applicazionecross-cutting concernse queste preoccupazioni trasversali sono concettualmente separate dalla logica di business dell'applicazione. Esistono vari buoni esempi comuni di aspetti come registrazione, verifica, transazioni dichiarative, sicurezza, memorizzazione nella cache, ecc.

L'unità chiave della modularità in OOP è la classe, mentre in AOP l'unità di modularità è l'aspetto. L'inserimento delle dipendenze ti aiuta a disaccoppiare gli oggetti dell'applicazione l'uno dall'altro e AOP ti aiuta a disaccoppiare i problemi di cross-cutting dagli oggetti che influenzano. AOP è come i trigger nei linguaggi di programmazione come Perl, .NET, Java e altri.

Il modulo Spring AOP fornisce intercettori per intercettare un'applicazione. Ad esempio, quando viene eseguito un metodo, è possibile aggiungere funzionalità extra prima o dopo l'esecuzione del metodo.

Terminologie AOP

Prima di iniziare a lavorare con AOP, familiarizziamo con i concetti e la terminologia AOP. Questi termini non sono specifici della primavera, piuttosto sono correlati alla AOP.

Suor n Termini e descrizione
1

Aspect

Questo è un modulo che ha una serie di API che forniscono requisiti trasversali. Ad esempio, un modulo di registrazione sarebbe chiamato aspetto AOP per la registrazione. Un'applicazione può avere un numero qualsiasi di aspetti a seconda del requisito.

2

Join point

Questo rappresenta un punto nella tua applicazione in cui puoi inserire l'aspetto AOP. Puoi anche dire che è il punto effettivo dell'applicazione in cui verrà eseguita un'azione utilizzando il framework Spring AOP.

3

Advice

Questa è l'azione effettiva da intraprendere prima o dopo l'esecuzione del metodo. Questa è una parte di codice effettiva che viene invocata durante l'esecuzione del programma dal framework Spring AOP.

4

Pointcut

Questo è un insieme di uno o più punti di unione in cui deve essere eseguito un consiglio. Puoi specificare i punti di taglio utilizzando espressioni o modelli come vedremo nei nostri esempi AOP.

5

Introduction

Un'introduzione consente di aggiungere nuovi metodi o attributi alle classi esistenti.

6

Target object

Oggetto consigliato da uno o più aspetti. Questo oggetto sarà sempre un oggetto proxy, denominato anche oggetto consigliato.

7

Weaving

La tessitura è il processo di collegamento di aspetti con altri tipi di applicazioni o oggetti per creare un oggetto consigliato. Questa operazione può essere eseguita in fase di compilazione, caricamento o in fase di esecuzione.

Tipi di consigli

Gli aspetti primaverili possono funzionare con cinque tipi di consigli menzionati di seguito:

Suor n Consigli e descrizione
1

before

Esegui consigli prima dell'esecuzione del metodo a.

2

after

Esegui un consiglio dopo l'esecuzione del metodo, indipendentemente dal suo risultato.

3

after-returning

Eseguire il consiglio dopo l'esecuzione del metodo a solo se il metodo viene completato correttamente.

4

after-throwing

Esegui il consiglio dopo l'esecuzione del metodo a solo se il metodo esce generando un'eccezione.

5

around

Eseguire il consiglio prima e dopo che il metodo consigliato è stato richiamato.

Implementazione di aspetti personalizzati

La primavera supporta il @AspectJ annotation style approccio e il schema-basedapproccio per implementare aspetti personalizzati. Questi due approcci sono stati spiegati in dettaglio nelle sezioni seguenti.

Suor n Approccio e descrizione
1 Basato su XML Schema

Gli aspetti vengono implementati utilizzando le classi regolari insieme alla configurazione basata su XML.

2 Basato su @AspectJ

@AspectJ fa riferimento a uno stile di dichiarazione degli aspetti come normali classi Java annotate con annotazioni Java 5.