• Home
  • Docker
  • Kubernetes
  • LLMs
  • Java
  • Ubuntu
  • Maven
  • Big Data
  • Archived
EJB | @Asynchronous
  1. Introduction
  2. Utiliser l'annotation @Asynchronous pour définir des méthodes asynchrones

  1. Introduction
    L'annotation @Asynchronous permet de définir des méthodes asynchrones dont l'exécution ne bloquera pas le code client.
    Il y a deux types de méthodes asynchrones :
    - Les méthodes qui ne retournent pas de valeur et pour lesquelles le code client ne voudra pas connaître le résultat d'exécution.
    - Les méthodes que le client voudra connaître le résultat d'exécution.

    Dans les deux cas, une méthode annotée par l'annotation @Asynchronous retourne immédiatement le contrôle au code client et ne le bloque pas jusqu'à la fin de l'exécution de la méthode.

    Notes :
    - L'annotation @Asynchronous doit être placée au niveau des méthodes de la session bean et non pas au niveau des méthodes des interfaces métiers.
    - Si l'annotation @Asynchronous est placée au niveau de la classe alors toutes les méthodes de la session bean seront asynchrones.
  2. Utiliser l'annotation @Asynchronous pour définir des méthodes asynchrones
    Définir deux méthodes qui vont servir comme exemple d'utilisation de l'annotation @Asynchronous :

    Implémenter les méthodes de l'interface métier :


    Invoquer les méthodes asynchrones en utilisant un client JNDI :

    Voici la sortie d'exécution dans la console JBoss :
    Notes :
    - La classe AsyncResult est une implémentation, parmis d'autres, de l'interface Future.
    - L'interface Future définit plusieurs méthodes qui peuvent être utilisées pour interagir avec les méthodes asynchrones.
    - La méthode get() attend la fin d'exécution de la méthode asynchrone avant de retourner le résultat de son exécution.
© 2025  mtitek