Que sont les intercepteurs dans Java EE?


J'essaie de clarifier mon concept sur les intercepteurs en Java EE. J'ai lu la spécification Java EE mais je suis peu confus à ce sujet. Veuillez me fournir un lien ou un tutoriel utile qui pourrait clarifier mon concept. Comment, Quand, Pourquoi utilisons-nous des intercepteurs?

Author: Tiny, 2013-09-17

3 answers

Les intercepteurs sont utilisés pour implémenter des problèmes transversaux, tels que la journalisation, l'audit et la sécurité, à partir de la logique métier.

Dans Java EE 5, les intercepteurs n'étaient autorisés que sur les EJB. Dans Java EE 6, les intercepteurs sont devenus une nouvelle spécification propre, résumée à un niveau supérieur afin qu'elle puisse être appliquée de manière plus générique à un ensemble plus large de spécifications de la plate-forme.

Ils interceptent les invocations et les événements du cycle de vie sur une classe cible associée. Fondamentalement, un interceptor est une classe dont les méthodes sont invoquées lorsque des méthodes métier sur une classe cible sont invoquées, des événements de cycle de vie tels que des méthodes qui créent/détruisent le bean se produisent ou une méthode de délai d'expiration EJB se produit. La spécification CDI définit un mécanisme de sécurité de type pour associer des intercepteurs aux beans à l'aide de liaisons d'intercepteurs.

Recherchez un exemple de code de travail à:

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

Java EE 7 aussi introduction d'une nouvelle annotation @ Transactional dans l'API de transaction Java. Cela vous permet d'avoir des transactions gérées par conteneur en dehors d'un EJB. Cette annotation est définie comme une liaison d'intercepteur et implémentée par le runtime Java EE. Un exemple de travail de @Transactional est à:

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

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

J'aime cette définition: Les intercepteurs sont des composants qui interceptent les appels aux méthodes EJB. Ils peuvent être utilisés pour l'audit et la journalisation au fur et à mesure de l'accès aux EJB.

Dans une autre situation, ils peuvent être utilisés dans une situation où nous devons vérifier si un client a l'autorité ou l'autorisation d'exécuter une transaction sur un objet particulier dans la base de données. Eh bien, c'est là que les intercepteurs sont utiles; ils peuvent vérifier si le client / utilisateur a cette autorité en vérifiant si il peut invoquer cette méthode sur cet objet de base de données ou EJB.

Cependant, je voudrais toujours jeter un oeil à l'articlesuivant et au tutorielsuivant pour avoir une idée de la façon dont ils sont utilisés dans un paramètre/environnement Java EE.

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

Les intercepteurs sont utilisés pourajouter une capacité AOP aux beans gérés.

Nous pouvons attacher Interceptor à notre classe en utilisant l'annotation @Interceptor. Chaque fois qu'une méthode de notre classe est appelée , l'intercepteur attaché interceptera cette invocation de méthode et exécutera sa méthode d'intercepteur.

Cela peut être réalisé en utilisant l'annotation @AroundInvoke ( voir l'exemple ci-dessous ).

Méthode D'Intercepteurs

Nous pouvons intercepter les événements du cycle de vie d'une classe ( objet création, destruction, etc.) en utilisant l'annotation @AroundConstruct.

La principale différence entre Interceptor et Servlet Filters est que nous pouvons utiliser Interceptor en dehors de WebContext, mais les filtres sont spécifiques aux applications Web.

Les utilisations courantes des intercepteurs sont la journalisation, l'audit et le profilage.

Pour une introduction plus détaillée, vous pouvez lire cet article. https://abhirockzz.wordpress.com/2015/01/03/java-ee-interceptors/

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