Extrait du cours les EJB (Entreprise Java Bean)
…….
59.2.2. Les EJB session avec état
Ce type de bean fournit aussi un ensemble de traitements grâce à ses méthodes mais il a la possibilité de conserver des données entre les différents appels de méthodes d’un même client. Une instance particulière est donc dédiée à chaque client qui sollicite ses services et ce tout au long du dialogue entre les deux entités.
Les données conservées par le bean sont stockées dans les variables d’instances du bean. Les données sont donc conservées en mémoire. Généralement, les méthodes proposées par le bean permettent de consulter et mettre à jour ces données.
Dans un EJB session avec état il est possible de définir plusieurs méthodes permettant la création d’un tel EJB. Ces méthodes doivent obligatoirement commencer par ejbCreate.
Les méthodes ejbPassivate() et ejbActivate() doivent définir et contenir les éventuels traitements lors de leur appel par le conteneur. Celui-ci appelle ces deux méthodes respectivement lors de la sérialisation du bean et sa désérialisation. La méthode ejbActivate() doit contenir les traitements nécessaires à la restitution du bean dans un état utilisable après la désérialisation.
Le cycle de vie d’un ejb avec état est donc identique à celui d’un bean sans état avec un état supplémentaire lorsque celui-ci est sérialisé. La fin du bean peut être demandée par le client lorsque celui-ci utilise la méthode remove(). Le conteneur invoque la méthode ejbRemove() du bean avant de supprimer sa référence.
Certaines méthodes métiers doivent permettre de modifier les données stockées dans le bean.
59.3. Les EJB entité
Ces EJB permettent de représenter et de gérer des données enregistrées dans une base de données. Ils implémentent l’interface EntityBean.
L’avantage d’utiliser un tel type d’EJB plutôt que d’utiliser JDBC ou de développer sa propre solution pour mapper les données est que certains services sont pris en charge par le conteneur.
Les beans entités assurent la persistance des données en représentant tout au partie d’une table ou d’une vue. Il existe deux types de bean entité :
persistance gérée par le conteneur (CMP : Container Managed Persistence) persistance gérée par le bean (BMP : Bean Managed Persistence).
Avec un bean entité CMP (container-managed persistence), c’est le conteneur d’EJB qui assure la persistance des données grâce aux paramètres fournis dans le descripteur de déploiement du bean. Il se charge de toute la logique des traitements de synchronisation entre les données du bean et les données dans la base de données.
Un bean entité BMP (bean-managed persistence), assure lui-même la persistance des données grâce à du code inclus dans les méthodes du bean.
Plusieurs clients peuvent accéder simultanément à un même EJB entity. La gestion des transactions et des accès concurrents est assurée par le conteneur.
59.4. Les outils pour développer et mettre en oeuvre des EJB
La mise en oeuvre des EJB requiert un conteneur d’EJB généralement inclus dans un serveur d’applications et un IDE pour être productif.
59.4.1. Les outils de développement
Plusieurs EDI (Environnement de Développement Intégré) open source permettent de développer et de tester des EJB notamment Eclipse et Netbeans.
Netbeans est d’ailleurs celui qui propose le plus rapidement une implémentation pour mettre en oeuvre la dernière version des spécifications relatives aux EJB.
59.4.2. Les conteneurs d’EJB
Il existe plusieurs conteneurs d’EJB commerciaux mais aussi d’excellents conteneurs d’EJB open source notamment Glassfish, JBoss ou Jonas.
……
Les EJB (Entreprise Java Bean) (332 KO) (Cours PDF)