Decouverte JEE/Spring

Fermé
polmik - 2 sept. 2013 à 16:25
 polmik - 2 sept. 2013 à 17:43
Salut tout le monde,

je découvre pour le moment JEE avec le framework SpringMVC, et comme je n'ai que très peu de compétences dans le développement web plusieurs choses me semblent obscure.

La question qui me chiffonne pour l'instant est celle ci, imaginons un site marchand, j'ai des utilisateur et des items en DB, et je souhaite afficher la liste de tous les items que l'utilisateur a acheté.

Si j'ai bien compris
- la requête est réceptionnée par un contrôleur général
- ce contrôleur aiguille cette requête vers un contrôleur qui répond au filtre @RequestMapping(...)
- le contrôleur s'adresse à un service pour récupérer mon utilisateur et ses items en DB
- il envoie le tout à la vue

C'est correct jusque ici ?

Maintenant ce qui me pose problème;
une fois que le contrôleur a un objet "Utilisateur"(avec la liste de ses items)
1) je me contente juste de l'envoyer à la vue, et chaque fois que l'utilisateur fait cette requête on recommence tout

ou alors,

2) je stocke le résultat dans le contexte session pour éviter de consulter la DB inutilement ?

Merci d'avance :)
A voir également:

2 réponses

juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
2 sept. 2013 à 16:41
Bonjour,

A partir d'ici c'est toi qui voit, chaque solution à ses avantages et inconvénients.

Stocker le résultat dans un contexte de session aurait pour conséquence qu'il ne se mettrait à jour qu'au changement de session.
C'est à dire que si tu modifie le contenu tes obligé de te déco/reco pour que la requête s'exécute à nouveau. Mais sûrement plus rapide.

Le requêtage à chaque fois est beaucoup plus facile à mettre en place, car c'est toujours la même chose. Mais cela peut-être un petit peu plus lent (pour une requête de moins de 100.000 lignes, c'est pas visible à l'oeil nu je pense).

Personnellement j'utilise cette deuxième solution !

Après il faut évaluer cela en fonction de l'infrastructure que tu utilises (clients, serveur, débit, SGBDR).

Cdlt,
0
Ok, ça me rassure de voir que c'est une pratique qui peut avoir son utilité, j'avais peur de chercher à employer la session dans un but qui n'était pas le sien.

Merci :)
0