IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Charger les données une seule fois ou dans chaque session.


Sujet :

Développement Web en Java

  1. #1
    Membre habitué Avatar de archer
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    338
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 338
    Points : 180
    Points
    180
    Par défaut Charger les données une seule fois ou dans chaque session.
    Bonjour,

    Dans un projet de développement où j'utilise Spring et Hibernate. j'ai la classe suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Class User
    {
    String nom;
    String prénom;
    Set<User> providers;
    Set<User> clients;
    }
    ou chaque utilisateur "user" peut avoir plusieurs fournisseurs, comme il peut avoir plusieurs clients. La classe contient d'autres attribues qui concerne les produits fournis, les prix ....
    Le principe de la vente c'est que chaque fournisseur prend les produit du sien et définit de nouveaux prix pour ses clients(marge de bénéfice). Mais la livraison et le calcul des bénéfices ne se fait que lorsqu'une commande a été effectuée. Dans ce cas je dois calculer la marge de bénéfice entre fournisseurs jusqu'à atteindre le premier.

    Ma question est la suivantes:
    Est-t-il judicieux qu'à chaque connexion d'un utilisateur. je charge dans la session tous ses client et les fournisseurs pour faire les traitement (attribution des types de produits, définition des prix, suspension des clients, suppression des clients ...)
    ou bien charger le tous une seule fois dans la mémoire en utilisant un singleton et à chaque fois qu'un utilisateur se connecte je l'extrait à partir de se dernier.
    ou y-t-il d'autres solutions.

    Merci d'avance.
    rien pour l'instant

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 342
    Points
    342
    Par défaut
    Si j'ai bien suivi, le chargement d'un utilisateur peut dans le "pire" cas provoquer le chargement de tout les utilisateurs.
    Du coup j'aurais tendance à dire que si il y a peu d'utilisateur au total, le choix n'est pas très important, par contre si le nombre d'utilisateurs est conséquent, j'opterais pour le singleton, avec les sessions, le nombres d'instance d'utilisateurs en mémoire sera multipliés par le nombre d'utilisateur connecte, ce qui peut vite occuper pas mal la mémoire.

    Autre solution : charger ces données au moment où tu en as besoin (sauf si ces données ne sont pas souvent utilisées, ça ne me parait pas être une bonne solution).

  3. #3
    Membre habitué Avatar de archer
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    338
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 338
    Points : 180
    Points
    180
    Par défaut
    Merci pour la réponse,

    En faite il y a d'autres relations auxquels j'ai mis lazy="true", et que je ne charge qu'au moment ou on en a besoin.
    Le nombre d'utilisateurs est conséquent comme vous venez de le mentionner. Donc j'utiliserai le singleton.
    est il possible de définir un managed-bean de scope application et singleton au même temps, ou bien il faut utiliser un bean singleton et un managed-bean de scope application?

    Merci.
    rien pour l'instant

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 342
    Points
    342
    Par défaut
    Là ça devient trop spécifique Spring/Hibernate que je connais mal.
    Mais, intuitivement j'aurais tendance à dire qu'il n'y a pas besoin de cumuler le fait qu'un bean soit dans le scope application ET dans un Singleton (puisque les 2 permettent de ne charger ce bean qu'une fois). Cela dit, je le répète je connais trop mal Spring (surtout) pour être sûr d'avoir bien saisi le concept de "managed-bean de scope application".

  5. #5
    Membre habitué Avatar de archer
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    338
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 338
    Points : 180
    Points
    180
    Par défaut
    En tout cas merci beaucoup pour la réponse. Je vais voire coté spring.
    rien pour l'instant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Integration] Charger le contexte une seule fois lors d'un test unitaire
    Par Kelem dans le forum Spring
    Réponses: 0
    Dernier message: 18/08/2009, 19h35
  2. charger les données d'un fichier .txt dans une table
    Par lemerite dans le forum Développement
    Réponses: 6
    Dernier message: 10/09/2008, 18h33
  3. Charger un DLL une seule fois (Win32)
    Par adrien_as dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2007, 09h39
  4. sortie une donnée une seule fois
    Par speedylol dans le forum Requêtes
    Réponses: 5
    Dernier message: 10/11/2006, 15h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo