Effectivement, les EJB sont gourmands en ressources, et il ne faut pas les utiliser pour de petits projets. Mais ils font gagner pas mal de temps, ont des performances très satisfaisantes et surtout ont une très bonne scalability lorsqu'ils sont utilisés au bon endroit.
Pour les performances, si on parle des EJB Entity Beans, elles sont loin d'être satisfaisantes!
Depuis les EJB 2 les choses se sont arrangées (appels locaux entre les Session et les Entity, avant il fallait passer par RMI), mais tu as toujours au moins 3 classes par EJB, voir 4 ou 5, et l'empreinte mémoire d'un objet métier modélisé par un Entity Bean est énorme! Sans parler des requêtes SQL générées dans les CMP, où on n'a pas de contrôle, on est obligé de coder les méthodes find en SQL...
On peut aussi parler de l'absence de notion d'héritage avec les Entity Beans...
Pour l'accès aux bases de données, tu as typiquement le choix entre les EJB, JDBC dans les servlets, ou (dans un futur proche) JDO (Java Data Object, un nouveau moyen de gérer la persitence, plus léger que les EJB).
JDO (Java Data Objects) n'est pas directement comparable aux Entity Beans CMP, puique suivant l'implémentation utilisée, on peut gérer la persistance dans une base de données relationnelle, mais aussi dans une base de données objet, dans du XML, etc etc (la spec JDO n'est pas restrictive)
pour plus d'infos, www.libelis.com
Personnellement dans un projet de taille moyenne sur lequel je travail, j'utilise des servlets pour le Controller, des query appelés par JDBC comme Model et les JSP comme View. (Je déconseille l'utilisation de servlet comme view, parce que l'HTML hardcodé ça pue quand même ...)
[^] # Re: Avantages ?
Posté par Guillaume Carre . En réponse à la dépêche JOnAS 3.1 est sortie. Évalué à 1.
Effectivement, les EJB sont gourmands en ressources, et il ne faut pas les utiliser pour de petits projets. Mais ils font gagner pas mal de temps, ont des performances très satisfaisantes et surtout ont une très bonne scalability lorsqu'ils sont utilisés au bon endroit.
Pour les performances, si on parle des EJB Entity Beans, elles sont loin d'être satisfaisantes!
Depuis les EJB 2 les choses se sont arrangées (appels locaux entre les Session et les Entity, avant il fallait passer par RMI), mais tu as toujours au moins 3 classes par EJB, voir 4 ou 5, et l'empreinte mémoire d'un objet métier modélisé par un Entity Bean est énorme! Sans parler des requêtes SQL générées dans les CMP, où on n'a pas de contrôle, on est obligé de coder les méthodes find en SQL...
On peut aussi parler de l'absence de notion d'héritage avec les Entity Beans...
Pour l'accès aux bases de données, tu as typiquement le choix entre les EJB, JDBC dans les servlets, ou (dans un futur proche) JDO (Java Data Object, un nouveau moyen de gérer la persitence, plus léger que les EJB).
JDO (Java Data Objects) n'est pas directement comparable aux Entity Beans CMP, puique suivant l'implémentation utilisée, on peut gérer la persistance dans une base de données relationnelle, mais aussi dans une base de données objet, dans du XML, etc etc (la spec JDO n'est pas restrictive)
pour plus d'infos, www.libelis.com
Personnellement dans un projet de taille moyenne sur lequel je travail, j'utilise des servlets pour le Controller, des query appelés par JDBC comme Model et les JSP comme View. (Je déconseille l'utilisation de servlet comme view, parce que l'HTML hardcodé ça pue quand même ...)
Utiliser un framework de type Struts va beaucoup aider dans ce cas là... http://jakarta.apache.org/struts(...)