• Home
  • Docker
  • Kubernetes
  • LLMs
  • Java
  • Ubuntu
  • Maven
  • Big Data
  • Archived
EJB | Singleton Session Beans
  1. Introduction
  2. Définir un singleton bean
  3. Annotations @Local, @Remote, @LocalBean
    1. Annotation @Local
    2. Annotation @Remote
    3. Annotation @LocalBean
  4. Annotations @PostConstruct, @PreDestroy
    1. Annotation @PostConstruct
    2. Annotation @PreDestroy
  5. Annotation @Startup
  6. Annotation @DependsOn

  1. Introduction
    Un singleton bean ("singleton session bean") est une classe Java que le container EJB instancie et rend accessible ses méthodes publiques.
    Le singleton bean est accessible en utilisant l'injection automatique ou JNDI.

    Le container EJB crée une seule instance du singleton bean pour une application.
    Les valeurs des variables d'instance du singleton bean sont conservées entre différents appels du singleton bean.
  2. Définir un singleton bean
    Pour définir une classe comme étant un singleton bean il faut, typiquement, annoter la classe avec l'annotation @Singleton.

    Code source (JBoss) de l'annotation @Singleton:

    L'annotation @Singleton accepte 3 paramètres :
    • String name()
      Le nom EJB du singleton bean.
      Ce nom sera utilisé pour référencer le singleton bean (avec DI ou JNDI).
      Par défaut, si aucune valeur n'est spécifiée pour ce paramètre, il sera initialisé par le nom de la classe du singleton bean (sans le nom du package).
      Typiquement, on s'en sert pour donner un nom plus explicite au singleton bean ou pour distinguer le singleton bean d'un autre singleton bean qui a le même nom de la classe.

    • String mappedName()
      Ce paramètre permet de mapper le singleton bean à un nom global définit dans le container EJB (assez souvent un nom JNDI).

    • String description()
      Nom descriptif du singleton bean.

    Exemple :
  3. Annotations @Local, @Remote, @LocalBean

    1. Annotation @Local
      Voir les détails dans la page @Stateless.
    2. Annotation @Remote
      Voir les détails dans la page @Stateless.
    3. Annotation @LocalBean
      Voir les détails dans la page @Stateless.
  4. Annotations @PostConstruct, @PreDestroy
    Annotations qui gèrent le cycle de vie du singleton bean :

    1. Annotation @PostConstruct
      Voir les détails dans la page @Stateless.
    2. Annotation @PreDestroy
      Voir les détails dans la page @Stateless.
  5. Annotation @Startup

    Cette annotation indique au container EJB d'instancier le singleton bean durant le démarrage de l'application.

    Code source (JBoss) de l'annotation @Startup:

    Exemple :
  6. Annotation @DependsOn

    Avant d'instancier le singleton bean et appeler ses méthodes annotées par @PostConstruct, le container EJB va s'assurer que tous les autres singletons beans spécifiés par cette annotation sont :
    - instanciés (exécution du code des blocs d'initialisations + exécution du code du constructeur par défaut) ;
    - et leurs méthodes annotées par @PostConstruct sont exécutées.

    Code source (JBoss) de l'annotation @DependsOn:

    Exemple :

    Notes : L'ordre spécifié par l'annotation @DependsOn ("MyFirstSingletonBean", "MySecondSingletonBean") ne garantit pas que ces singletons beans vont être initialisés dans cet ordre.
© 2025  mtitek