Problème MVC <-> Hibernate

Problème MVC <-> Hibernate - Java - Programmation

Marsh Posté le 01-08-2006 à 09:35:12    

Bonjour,
 
J'ai vraiment un problème d'architecture sur mon application J2EE où tout de moins je n'arrive psa à m'imaginer comment mettre MVC dans mon appli. J'utilise Tomcat et Hibernate.
 
Les servlets (les controleurs dans le cas de MVC) récupére les données provenant soit d'un formulaire, soit dune BDD, ou autre. Pour le moment tout les accés à la couche données se font dans mes servlets qui les fournissent ensuite à mes JSP (pour la présentation). Ce que j'ai du mal à bien voir, c'est ce qu'il doit y avoir "normalement" entre les Servlets et l'accés à ma BDD. Je voudrai mettre en place une couche avec des objets qui fourniront des services à mes Servlets. Les Servlets récupéreront donc les données via ces services. Mais de temps à autre (sur des tutoriaux), je vois qu'on parle aussi de DAO et que les classes services possédent une implémentation de DAO.... J'ai du mal à saisir l'utilité.
 
Au final, chacune de mes servlets doit contenir une implémentation d'une classe Service. Mais lorsque j'appelle une méthode de cette classe me fournissant un service, est ce que c'est la servlet qui doit fournir une session Hibernate à chaque appel de méthode ou le service doit s'en occuper elle-même ?
 
J'ai d'autres choses à vous demander mais je m'en rapelle plus pour le moment... mais j'attends déjà vos réponses pour ces petites questions. Je suis désolé mais je suis noob en J2EE....
 
Merci d'avance à tous  :jap:

Reply

Marsh Posté le 01-08-2006 à 09:35:12   

Reply

Marsh Posté le 08-08-2006 à 11:14:00    

Une solution courante consiste à initialiser une session Hibernate dans un filtre de servlet et de le placer dans un ThreadLocal que les DAO iront lire. Comme ça ta servlet ne se préoccupe pas d'Hibernate, elle se contente d'obtenir un DAO et de l'utiliser. Il y a plusieurs exemples de ce mécanisme sur le site Hibernate, avec diverses variantes pour différents frameworks.

Reply

Marsh Posté le 08-08-2006 à 12:12:41    

ok, tu as un lien précis pour tout ça ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed