Cosa sono gli intercettori in Java EE?


Sto cercando di chiarire il mio concetto sugli intercettori in Java EE. Ho letto le specifiche Java EE ma sono un po ' confuso a riguardo. Per favore forniscimi qualche link utile o tutorial che potrebbe chiarire il mio concetto. Come, quando, Perché usiamo gli intercettori?

Author: Tiny, 2013-09-17

3 answers

Gli intercettori vengono utilizzati per implementare problemi trasversali, come la registrazione, il controllo e la sicurezza, dalla logica di business.

In Java EE 5, gli intercettori erano consentiti solo su EJB. In Java EE 6, gli intercettori sono diventati una nuova specifica a sé stante, astratta ad un livello superiore in modo che possa essere applicata in modo più generico a un insieme più ampio di specifiche nella piattaforma.

Intercettano le invocazioni e gli eventi del ciclo di vita su una classe target associata. Fondamentalmente, un interceptor è una classe i cui metodi vengono richiamati quando vengono richiamati i metodi aziendali su una classe di destinazione, si verificano eventi del ciclo di vita come i metodi che creano/distruggono il bean o si verifica un metodo di timeout EJB. La specifica CDI definisce un meccanismo di sicurezza del tipo per l'associazione degli intercettori ai bean utilizzando i binding degli intercettori.

Cerca un esempio di codice funzionante su:

Https://github.com/arun-gupta/javaee7-samples/tree/master/cdi/interceptors

Java EE 7 anche introdotta una nuova annotazione @ Transactional in Java Transaction API. Ciò consente di avere transazioni gestite dal contenitore al di fuori di un EJB. Questa annotazione è definita come un'associazione interceptor e implementata dal runtime Java EE. Un esempio di lavoro di @ Transactional è a:

Https://github.com/arun-gupta/javaee7-samples/tree/master/jta/transaction-scope

 39
Author: Arun Gupta, 2013-09-18 12:52:36

Mi piace questa definizione: gli intercettori sono componenti che intercettano le chiamate ai metodi EJB. Possono essere utilizzati per il controllo e la registrazione come e quando si accede agli EJB.

In un'altra situazione, possono essere utilizzati in una situazione in cui è necessario verificare se un cliente ha l'autorità o l'autorizzazione per eseguire una transazione su un particolare oggetto nel database. Bene, questo è dove gli intercettori sono utili; possono verificare se il client / utente ha quell'autorità controllando se pu invocare quel metodo su quell'oggetto di database o EJB.

Tuttavia, vorrei ancora dare un'occhiata al seguente articolo e al seguente tutorial per avere un'idea di come vengono utilizzati in un'impostazione/ambiente Java EE.

 10
Author: blackpanther, 2013-09-17 16:06:06

Gli intercettori vengono utilizzati per aggiungere la capacità AOP ai bean gestiti.

Possiamo collegare Interceptor alla nostra classe usando @Interceptor annotation. Ogni volta che un metodo nella nostra classe viene chiamato, l'Intercettore collegato intercetterà l'invocazione del metodo ed eseguirà il suo metodo intercettore.

Questo può essere ottenuto usando l'annotazione @AroundInvoke ( vedi esempio sotto ).

Metodo Intercettori

Possiamo intercettare gli eventi del ciclo di vita di una classe (oggetto creazione, distruzione ecc.) usando @ AroundConstruct annotation.

La differenza principale tra Interceptor e Filtri Servlet è che possiamo usare Interceptor al di fuori di WebContext, ma i filtri sono specifici per le applicazioni Web.

Gli usi comuni degli intercettori sono la registrazione, il controllo e la profilazione.

Per un'introduzione più dettagliata, puoi leggere questo articolo. https://abhirockzz.wordpress.com/2015/01/03/java-ee-interceptors /

 9
Author: Sundararaj Govindasamy, 2017-07-27 17:45:05