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

Spring Java Discussion :

Utilisation de Spring avec un client lourd


Sujet :

Spring Java

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 142
    Points : 80
    Points
    80
    Par défaut Utilisation de Spring avec un client lourd
    Bonjour,

    J'ai lu différentes docs de Spring (en diagonale) et je me demandais quel était l'intérêt d'utiliser ce framework sur une application de type client lourd en SWING.

    J'ai remarqué qu'il est surtout destiné aux applis J2EE.
    Il me semble qu'il permet de bien appliquer le modèle MVC, entre autre, mais SWING fonctionne déjà sur ce modèle.

    J'espère que vous pourrez m'éclairer.

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Tu ferais pas un petit confondage entre Spring et Struts ?

  3. #3
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Sisi ça se fait, il y a même un framework rcp basé sur Spring pour swing qui se monte petit à petit:
    http://www.springframework.org/spring-rcp
    http://spring-rich-c.sourceforge.net/

  4. #4
    Membre éclairé
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Points : 756
    Points
    756
    Par défaut
    Voilà un sujet qui m'intéresse énormément concernant Spring et le développement d'un client lourd.

    Je me pose un peu les mêmes questions que speedster concernant l'utilité de Spring pour un développement d'un client lourd en Swing avec Spring.

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    l'utilité est la même que pour une appli J2EE, faciliter l'accès à une session factory Hibernate, utilisation du pattern IoC etc ...

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Spring sert principalement a faire de l'injection de dépendance "transparente", pour eviter de faire des new() partout ou d'implementer des pattern Factory.

    Il y aussi un soupson d'AOP qui permet a des methodes d'etre automatiquement encapsulées dans des transactions (jdbc, hibernate,...).

    Pour moi, Spring est plutot dédié J2EE et pas trop Client (léger ou lourd). A la rigueur, il faudrait architecturer ton client pour séparer la partie IHM et la partie Metier. Et du coté "Metier" tu pourrais alors utiliser Spring.

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 142
    Points : 80
    Points
    80
    Par défaut
    Mais le client riche utilise un serveur d'applications si je ne m'abuse pas.

    Le client lourd est complètement indépendant.

    En ce qui concerne Spring, je n'ai pas trop compris le pattern IoC. L'intérêt immédiat que je vois actuellement est l'utilisation simplifiée d'Hibernate. Je n'ai pas à gérer les transactions et sessions.

    Est-il facilement applicable sur un projet existant ?

  8. #8
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Tu peux utiliser Spring quel que soit ton type d'application.
    Tu prendras les briques qui t'intéressent, injection, transactions, par exemple.

    Ce n'est pas compliqué à mettre en place.
    Si tu dois modifier un projet existant, la difficulté va dépendre de la taille de ton projet.

  9. #9
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 142
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par fr1man
    Tu peux utiliser Spring quel que soit ton type d'application.
    Tu prendras les briques qui t'intéressent, injection, transactions, par exemple.

    Ce n'est pas compliqué à mettre en place.
    Si tu dois modifier un projet existant, la difficulté va dépendre de la taille de ton projet.
    Je te remercie. Quelle version du framework me recommandes-tu ?

    Tu parle du Spring framework ou du sous-projet Spring RCP ?

    Enfin, j'ai vu qu'ils proposent un Spring IDE pour Eclipse. Ca peut peut être m'aider...? Au passage, est-ce que tu peux me conseiller un bon tutoriel ?

  10. #10
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Je n'ai pas utilisé spring rcp.
    Je me sers de spring framework 2.

    Les parties que j'ai choisies ne sont pas spécifiques à une architecture.
    Tu peux les utiliser dans un client lourd, une appli web, etc...

    Pour ce qui est d'un tutoriel, j'ai acheté le bouquin spring par la pratique.
    Il m'a permis d'apprendre ce que je cherchais. Il évoque plusieurs aspects du framework.

  11. #11
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    perso je te conseille le plugin MyEclipse qui te permet lors de la création d un projet de sélectionner les éléments dont tu auras besoin

  12. #12
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 142
    Points : 80
    Points
    80
    Par défaut
    Merci à vous pour vos lumières

  13. #13
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 142
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par fr1man
    Pour ce qui est d'un tutoriel, j'ai acheté le bouquin spring par la pratique.
    Il m'a permis d'apprendre ce que je cherchais. Il évoque plusieurs aspects du framework.
    Je voudrais éviter l'achat d'un bouquin pour l'instant.
    J'ai trouvé divers tutoriels pour spring mais j'en cherche un qui nous prenne un peu par la main (installation, intégration, configuration...).

    Pour l'instant, je souhaite intégrer Spring dans mon projet pour dans un premier temps rendre la gestion des transactions transparentes.

    En ce qui concerne l'injection des dépendances, quel en est l'intérêt lorsqu'on utilise Hibernate. Je me pose cette question car mes objets sont chargés à partir de la base de données, en cascade. Dans le cas où j'utiliserais le Lazy Loading, un appel à l'accesseur me chargerait l'objet à la demande.

  14. #14
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Pour le tutoriel désolé, je n'en connais pas.

    J'ai utilisé l'injection de dépendances, pour injecter la sessionFactory dans mes DAO et pour injecter mes DAO dans mes services.
    Ce n'est pas indispensable mais c'est bien pratique.

  15. #15
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 142
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par fr1man
    Pour le tutoriel désolé, je n'en connais pas.

    J'ai utilisé l'injection de dépendances, pour injecter la sessionFactory dans mes DAO et pour injecter mes DAO dans mes services.
    Ce n'est pas indispensable mais c'est bien pratique.
    Pourrais-tu me donner un petit exemple concret ?

  16. #16
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    Il faut que ton dao étende la classe HibernateDaoSupport

    http://www.springframework.org/docs/...aoSupport.html

    tu pourras alors définir tes méthodes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public void save(PersonDB transientInstance) {
    		try {
    			getHibernateTemplate().saveOrUpdate(transientInstance);
    		} catch (HibernateException he) {
    			log.write ("HibernateException" + he.printStackTrace());
    		} catch (DataAccessException dae) {
    			log.write ("DataAccessException"  dae.printStackTrace());dae);
    		}
    	}

  17. #17
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Perso, je n'utilise pas le HibernateDaoSupport pour être un peu moins dépendant de Spring.
    Ca dépend des gouts.
    Tu trouveras un exemple dans la doc Spring à cette adresse :
    http://static.springframework.org/sp...rnate-straight

  18. #18
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 142
    Points : 80
    Points
    80
    Par défaut
    J'ai jeté un oeil au chapitre 12 de la doc.
    Mais je n'arrive plus à distinguer la brique IoC de la brique Gestion des transactions.

    Je suis un peu perdu

    Avec vos exemples quelle fonctionnalité de Spring vous avez voulu illustrer ?

  19. #19
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    la partie IoC dans la doc est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      private SessionFactory sessionFactory;
     
        public void setSessionFactory(SessionFactory sessionFactory) {
            this.sessionFactory = sessionFactory;
        }
    dans l exemple que j ai donné, j ai simplement remplacé la recupération
    de la session

    this.sessionFactory.getCurrentSession()

    par getHibernateTemplate() qui contient une session et ou on execute directement la méthode save

  20. #20
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 142
    Points : 80
    Points
    80
    Par défaut
    J'ai compris l'idée en gros mais ce n'est pas si évident. Je me mélange un peu les pinceaux.

    Il va falloir que je mette les mains dans le cambouie et que je fasse une lecture approfondie des docs.

    Je comptais en un premier temps m'aider uniquement des tutoriaux trouvés sur www.developpez.net.

    Est-ce que vous pensez que c'est suffisant ou vaut-il mieux investir dans un livre comme celui que fr1man m'a cité ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Security] Spring Security et Client Lourds
    Par yashiro dans le forum Spring
    Réponses: 0
    Dernier message: 25/06/2012, 18h40
  2. [EJB3] Problème avec mon client lourd en Swing
    Par bza88 dans le forum Java EE
    Réponses: 3
    Dernier message: 30/01/2012, 09h26
  3. Utiliser Spring avec EJB
    Par rOmAle dans le forum Spring
    Réponses: 5
    Dernier message: 03/04/2007, 17h30
  4. [EJB3] Mise à jour automatique d'un client lourd ? Utilisation de JMS ?
    Par Claythest dans le forum Java EE
    Réponses: 7
    Dernier message: 11/12/2006, 10h34

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