Bonjour,
j'ai une façon de faire mon programme dont j'aimerai avoir votre opinion, car mon expérience ne me permet pas encore de s'avoir si je cours vers l'eccueil.
L'utilise les EJB session stateless uniquement comme des tuyaux pour mettre en relation la couche présentation avec des couches de données ou business.
(je fais du E commerce).
Par exemple j'ai un I18nManager maison qui me renvoit les traductions pour des labels. Dans un programme stand alone j'appel ainsi:
String traduction=I18nManager.getInstance().getTraduction(clé,Locale);
le manager est un singleton. A l'initialisation, il charge les traductions depuis les xml. (je vous passe les détails de pourquoi j'utilise pas le 18n de java)
PS: je ne met pas le code I18n dans celui du WAR, car c'est carrément un programme qui permet à des traducteurs de venir le modifié, non c'est conceptuellement un service.
Pour y accéder coté IHM, je passe par l'EJB, j'ai un I18nBean qui me fournit l'instance du singleton.
Et coté War j'ai un War18n encore un singleton, donc la seule fonction est de trouver l'ejb et de récupérer l'instance du 18nManager. Mon idée est bien sur d'éviter les appels jndi.
Donc pour résumer j'ai:
JSP --> WarI18nManager --> EJB --> I18nManager;
Donc je n'utilise, si je ne me trompe, l'EJB que comme une classe spécialisé dans la communication RMI. Je cherche evidemment à prévoir le changement, notamment les web services et autres.
Rem: je fais ca aussi pour les couches métiers et données (base de données)
Qu'en pensez vous ?
Partager