Difference entre les beans

Fermé
Snare94 Messages postés 88 Date d'inscription dimanche 8 août 2010 Statut Membre Dernière intervention 8 septembre 2016 - Modifié par Snare94 le 7/09/2016 à 10:42
Snare94 Messages postés 88 Date d'inscription dimanche 8 août 2010 Statut Membre Dernière intervention 8 septembre 2016 - 8 sept. 2016 à 09:46
Bonjour,

Je voudrais développer une application en Java EE 2.0 ou plus, j'ai donc suivi un tuto sur internet mais je n'arrive pas à faire la distinction entre tous les beans. Voilà ce que j'ai compris:

- Un Bean ou JavaBean est une simple classe Java, comme il en existe partout.

- Les Managed Bean et Backing Bean sont identiques, et sont de simples classes Java. C'est JSF qui les gère et ils jouent le rôle de modèle.

- Les EJB Bean peuvent être divisé en 2 types les Sessions Bean et Entity Bean :

les Sessions Bean possèdent eux aussi 2 états les Stateless (qui ne retient aucune données) et Stateful (retient les données).

les Entity Bean font la liaison entre la base de données et l'application, il gère ce qui doit être enregistrer.




1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
7 sept. 2016 à 20:15
Bonjour,

"Java EE 2.0 ou plus"
J2EE 1.2 ça date de 1999... il y en a eu du chemin de fait depuis !
Aujourd'hui tu devrais aller sur du Java EE 7 (en attendant que Java EE 8 sorte l'année prochaine) ce qui t'évitera au passage d'apprendre des trucs dont plus personne ne se sert...

"Un Bean ou JavaBean est une simple classe Java, comme il en existe partout."
Non, n'importe classe Java prise au hasard n'est pas un Bean.
Un bean représente une donnée, il y a donc des champs, avec tout leur getters et setters (correctement nommés), un constructeur vide et généralement de la sérialisation.
Mais à part les méthodes de Object (equals, hashCode, toString) que l'on redéfinira, il ne devrait pas y avoir d'autres méthodes que les get/set.

"Managed Bean et Backing Bean"
Effectivement ces beans n'ont de sens que pour JSF, mais on peut faire du Java EE sans JSF auquel cas ces beans n'ont pas de sens.
Mais là encore, ce ne sont pas "de simples classes Java", déjà parce que ce sont des beans, et que les classes, champs et méthodes portent des annotations pour ajouter des informations complémentaires au bean.

"Les EJB Bean peuvent être divisé en 2 types les Sessions Bean et Entity Bean"
Il y a 3 types d'EJB (pas besoin de dire 'EJB Bean', le B de EJB veut déjà dire Bean), tu as oublié les EJB Messages.
Quant à la notion de Statefull et Stateless, ce n'est pas des états de l'EJB, mais ce sont plutôt des rôles qu'on lui donne. Un EJB donné sera toujours soit statefull, soit stateless, il ne peut pas passer de l'un à l'autre.

Mais pour commencer à apprendre le Java EE, je mettrais de côté les EJB et le JSF dans un premier temps. Regardes déjà les servlets, la configuration du web.xml, les JSP, pour comprendre comment fonctionne l'introspection des beans sur la JSTL.

Un exemple de projet très basique à analyser :
https://codes-sources.commentcamarche.net/source/100195-exemple-simple-d-application-jstl

Quand on fait dans la JSP :

<c:forEach var="calculator" items="${history}" >
    <tr>
        <td>${calculator.calculation}</td>
        <td>${calculator.result}</td>
    </tr>
</c:forEach>

Cela fonctionne uniquement parce que les beans sont bien construits et que Java est capable d'aller récupérer la liste
history
dans la session et faire une boucle dessus pour appeler les méthodes
getCalculation()
et
getResult()
qu'on a mis dans chaque bean de cette liste.

Rien que ce tour de passe-passe te demandera quelques tutoriels avant d'y arriver par toi même...
0
Snare94 Messages postés 88 Date d'inscription dimanche 8 août 2010 Statut Membre Dernière intervention 8 septembre 2016 4
Modifié par Snare94 le 8/09/2016 à 09:46
"Java EE 2.0 ou plus" oui j'ai en effet oublié un mot entre les 2 et c'était JSF.

Je suis actuellement en train de faire des essais sur une page avec des formulaires pour prendre la main et mieux comprendre les étapes.

Merci pour ta réponse et le petit exercice de la calculatrice
0