• Home
  • Docker
  • Kubernetes
  • LLMs
  • Java
  • Ubuntu
  • Maven
  • Big Data
  • Archived
EJB | @EJB
  1. Introduction
  2. Utiliser l'annotation @EJB avec des attributs
  3. Utiliser l'annotation @EJB au niveau des méthodes
  4. Utiliser l'annotation @EJB au niveau des classes

  1. Introduction
    L'annotation @EJB permet de préciser les sessions beans que le container EJB va instancier et initialiser automatiquement.

    L'annotation peut être utilisée avec des variables pour indiquer au container EJB d'y injecter automatiquement l'instance des sessions beans.
    L'injection des instances des sessions beans est faite avant que les méthodes métiers ne soient invoquées.

    Notes : L'annotation peut être aussi utilisée au niveau des méthodes et des classes.

    Code source (JBoss) de l'annotation @EJB:
  2. Utiliser l'annotation @EJB avec des attributs
    Dans le cas où une interface est implémentée par plusieurs classes, alors l'élément name des annotations @Stateless, @Stateful, et @Singleton et l'élément beanName de l'annotation @EJB doivent être utilisés pour préciser les sessions beans à injecter.

    • Commençant par créer une interface locale :


    • Créant maintenant deux classes distinctes qui implémentent l'interface locale :

      Notes :
      - Il faut remarquer que les deux classes MyStatelessAlpha et MyStatelessDelta utilisent l'annotation @Local pour préciser les interfaces métiers des stateless beans (cela n'est pas nécessaire si les interfaces sont annotées directement par cette annotation).

      - Les deux classes (MyStatelessAlpha et MyStatelessDelta) implémente la même interface (MyInterfaceLocal) comme interface métier, et il peut être pratique d'utiliser l'élément name de l'annotation @Stateless pour donner des noms explicites (et typiquement différents des noms par défaut des classes) pour distinguer chaque stateless bean ("MyStatelessAlphaName", "MyStatelessDeltaName").

    • Enfin, utilisant l'annotation @EJB pour référencer les deux stateless beans.
      Notes :
      - Il faut remarquer l'utilisation l'élément beanName de l'annotation @EJB pour spécifier au container EJB quel stateless bean doit être injecté.

  3. Utiliser l'annotation @EJB au niveau des méthodes
    L'utilisation de l'annotation @EJB au niveau de la méthode fonctionne de la même façon que lorsqu'elle est utilisée avec les variables mais elle donne plus de contrôle sur les instances des sessions beans injectées.

  4. Utiliser l'annotation @EJB au niveau des classes
    L'utilisation de l'annotation au niveau de la classe est importante lorsqu'on a besoin de faire des injections anonymes des sessions beans qui peuvent être référencées par la suite en utilisant JNDI.
    Cela peut être utile dans des contextes où l'injection n'est pas possible.

    Notes :
    - Les attributs name et beanInterface sont obligatoires lorsque l'annotation @EJB est utilisée au niveau de la classe.
© 2025  mtitek