Que sont les intercepteurs en 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 un peu confus à ce sujet. Merci de me donner quelques liens utiles ou tutoriel qui pourrait effacer mon concept. Comment, Quand, Pourquoi utilisons-nous des intercepteurs?

32
demandé sur Tiny 2013-09-17 18:57:27

3 réponses

les intercepteurs sont utilisés pour mettre en œuvre des préoccupations transversales, telles que la journalisation, la vérification et la sécurité, à partir de la logique opérationnelle.

en Java EE 5, les intercepteurs n'étaient autorisés que sur EJBs. En Java EE 6, les intercepteurs sont devenus une nouvelle spécification propre, abstraite à un niveau plus élevé, de sorte qu'elle peut être appliquée de manière plus générale à un ensemble plus large de spécifications dans la plate-forme.

ils interceptent les invocations et les événements du cycle de vie sur une classe cible associée. Fondamentalement, un intercepteur est une classe dont les méthodes sont invoquées lorsque les méthodes d'affaires sur une classe cible sont invoquées, des événements du cycle de vie tels que les méthodes qui créent/détruisent la fève se produisent, ou une méthode de timeout EJB se produit. La spécification du CDI définit un mécanisme de type sûr pour associer les intercepteurs aux haricots en utilisant des fixations d'intercepteurs.

pour un exemple de code à:

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

Java EE 7 a également introduit 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'une EJB. Cette annotation est définie comme une liaison d'intercepteur et implémentée par L'exécution Java EE. Un échantillon de @Transactional est à:

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

39
répondu Arun Gupta 2013-09-18 12:52:36

j'aime bien cette définition: les Intercepteurs sont des composants qui intercepter les appels aux méthodes de l'EJB. Ils peuvent être utilisés pour l'audit et journalisation et quand les Ejb sont accessibles.

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

Toutefois, j'aurais toujours un oeil à ce qui suit article et tutoriel pour avoir une idée de la façon dont ils sont utilisés dans un environnement Java EE.

10
répondu blackpanther 2013-09-17 16:06:06

les intercepteurs sont utilisés pour ajouter AOP capacité pour la gestion des haricots.

nous pouvons attacher Interceptor à notre classe en utilisant l'annotation @Interceptor. Chaque fois qu'une méthode dans 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 ).

Method Interceptors

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

différence Principale Servlet Filters est-ce que nous pouvons utiliser Interceptor en dehors du WebContext, mais les filtres sont spécifiques aux applications Web.

les intercepteurs sont couramment utilisés pour l'enregistrement, la vérification et le profilage.

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

9
répondu Sundararaj Govindasamy 2017-07-27 17:45:05