Ejb3
Cédric BOTTERO Michaël MATHIEU Genève, le 30 juin 2009
Plan
• • • • • • • Introduction 3 types d’EJB (Session, Entity, Message-Driven) Injection et JNDI Intercepteurs et callbacks Transactions (CMT, BMT) Sécurité Persistance avec JPA
Introduction
• Permet d’éviter au développeur d’avoir à se préoccuper de tout ce qui a trait au système :
– – – – – – – – – Transactions Sécurité Evolutivité Concurrence Communications Gestion des ressources Persistance Gestion des erreurs Etc.
3 types d’EJB
• Session
– Stateless – Stateful
• Entity (depuis la version 3, est un simple POJO) • Message-Driven
Session
• Sont conçus pour encapsuler la logique métier • Les plus utilisés • 2 types d’EJB session :
– Stateless – Stateful
Session -> Stateless
• Stateless (sans état) => les attributs de l’EJB sont réinitialisées entre chaque appel même s’il s’agit du même client • Sont spécialement pensés pour être robustes et fiables lorsqu’il y a beaucoup d’appels en concurrence
• Lorsqu’un client appelle l’EJB, une instance de ce dernier sert le client, puis, retourne dans le pool d’EJB (cette dernière est donc prête a être réutilisée pour un autre client) • A utiliser le plus souvent possible (par rapport aux Stateful) => cycle de vie
EJB 2 vs. 3
• Pour les EJB session stateless, nous commencerons par présenter leur utilisation avec les EJB 2, puis avec les 3 • Le but est de montrer les améliorations et simplifications amenées avec la version 3 • Cela permettra également de mieux comprendre le principe de fonctionnement des EJB (par exemple, l’utilisation du javax.rmi.PortableRemoteObject.nar row(…))
Structure d’un EJB
• Avec les EJB 2, la configuration des EJB se fait dans le fichier META-INF/ejb-jar.xml • Avec les EJB 3, le fichier de configuration n’est plus nécessaire: la configuration se fait dans le code au moyen des annotations
Session -> Stateless
EJB 2
Session -> Stateless
EJB 2
• Par