Bonjour, pourriez vous m'expliquer clairement qu'est ce qui définit et différencie ces conteneurs. Ainsi que quand les utiliser. Par exemple je n'arrive pas à me décider si je dois utiliser EJB ou CDi pour mes classes métier.
Merci & bonne journée.
Bonjour, pourriez vous m'expliquer clairement qu'est ce qui définit et différencie ces conteneurs. Ainsi que quand les utiliser. Par exemple je n'arrive pas à me décider si je dois utiliser EJB ou CDi pour mes classes métier.
Merci & bonne journée.
Les trois mon capitaine ?
JSF est une technologie de "présentation". Elle vise à traiter l'interaction entre le logiciel client (le plus souvent un navigateur) et le serveur.
EJB est une technologie de " composants métiers". Elle vise à organiser des composants offrant des services, gérer leurs communications et leurs cohérences.
Il y a des frameworks qui permettent de combiner les deux (ex : feu JBoss Seam). Et c'est d'ailleurs l'objectif de CDI. Il s'agit d'une technologie qui gère le cycle de vie d'objets et qui justement apporte une couche commune à la gestion de "beans" pour JSF et EJB.
JSF s'intègre très facilement avec un conteneur Web (ex : Tomcat) alors que EJB requière un conteneur d'EJB et donc un serveur d'application plus complet comme JBoss Wildfly, Apache Geronima, Oracle WebLogic, GlassFish.
Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
Ceylon : Installation - Concepts de base - Typage - Appels et arguments
ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
Une solution vous convient ? N'oubliez pas le tag
Signature par pitipoisson
Bonsoir et merci de ta réponse Logan Mauzaize.
Je pense avoir compris l'utilité de JSF (appel d'objets dans les vues) et de EJB (gère le cycle de vie de mes objets métier ainsi que le JPA).
Le problème c'est CDI je n'arrive pas à le cataloguer. Tout ce que fait CDI, EJB peut le faire non ? De plus EJB possède des fonctionnalités très sympas comme @Stateless, @Stateful ainsi que les Transactions que CDI ne possède pas, si ?
Une classe @EJB peut-elle être appelée dans une vue, si non celle ci peut être combiné à un @ManagedBean ?
Du coup je n'arrive pas à comprendre l'utilité de CDI dans un projet.
Merci de m'aider afin d'y voir un peu plus clair !
Partager