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

Frameworks Web Java Discussion :

Combiner Spring et JSF ?


Sujet :

Frameworks Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2012
    Messages : 11
    Par défaut Combiner Spring et JSF ?
    Bonjour,
    Je suis entrain de développer une application JAVA EE et j'ai pas encore décidé de ce qui est architecture applicative. Je vois que beaucoup de développeurs optent pour la combinaison de JSF (couche présentation) et SPRING (couhe métier).

    Je voudrai savoir quel est l'interet de cette combinaison ? si j'utilise JSF+SPRING au lieu de SPRING MVC+SPRING , qu'elle avantage présentera il pour mon application ?

    Merci.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    J'irais moi plus loin, si tu développez sur j2EE7, tu peux retirer spring de l'équation. EJB + CDI + JSF ça marche très bien pour des fonctionnalités similaires

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    De manière générale, tu peux soit utiliser Spring soit EJB3 pour la couche métier, les 2 solutions sont très abouties.
    Pour la couche présentation, JSF + Primefaces qui est une bibliothèque de composants vraiment sympa.
    Ensuite, il y a le débat possible sur le moyen d'injecter tes dépendances : JSF ou CDI...
    Il semble que CDI soit largement favorisé par la communauté, mais j'y mettrais un bémol, il faut la version 2.2 de JSF, sinon, il va te manquer le scope VIEW, très intéressant dans bien des cas.

    Autre point qui peut avoir son importance.
    Avec les EJB, si tu optes pour des transactions JTA (défaut), il faut faire attention avec les propriétés en Lazy loading. En effet, dès que tu retourneras à la couche présentation (JSF), les entités seront détachées...
    Dans la pratique, dans ce cas, il est préférable d'utiliser une couche DTO qui soit le reflet des données utilisées par la vue.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    J'irais moi plus loin, si tu développez sur j2EE7, tu peux retirer spring de l'équation. EJB + CDI + JSF ça marche très bien pour des fonctionnalités similaires
    Même avec JEE 6 : jamais eu besoin de Spring moi.

    Citation Envoyé par OButterlin Voir le message
    Il semble que CDI soit largement favorisé par la communauté, mais j'y mettrais un bémol, il faut la version 2.2 de JSF, sinon, il va te manquer le scope VIEW, très intéressant dans bien des cas.
    Vous le dites et je vous fais toujours confiance mais en fait je n'ai jamais utilisé @ViewScoped non plus... Avec FacesServlet qui gère tout (sauf les cas particuliers de redirection, où il faut écrire une Servlet assez laide), tout est géré et reste bien dans la session de l'utilisateur. Ça dépend bien sûr du but de l'application mais je ne voudrais pas qu'un objet puisse être modifié par un autre utilisateur entre deux vues de la même session.

    Citation Envoyé par OButterlin Voir le message
    Avec les EJB, si tu optes pour des transactions JTA (défaut), il faut faire attention avec les propriétés en Lazy loading.
    Des collègues ont utilisé FetchType.LAZY, ils ne se sont jamais plaint.

    Je vous prie de m'excuser (encore) de me mêler dans la discussion mais je voudrais apprendre un peu plus entre deux traductions,

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Mishulyna Voir le message
    Vous le dites et je vous fais toujours confiance mais en fait je n'ai jamais utilisé @ViewScoped non plus... Avec FacesServlet qui gère tout (sauf les cas particuliers de redirection, où il faut écrire une Servlet assez laide), tout est géré et reste bien dans la session de l'utilisateur. Ça dépend bien sûr du but de l'application mais je ne voudrais pas qu'un objet puisse être modifié par un autre utilisateur entre deux vues de la même session.
    Le scope view est vraiment super intéressant avec les mises à jour assynchrones (ajax) ce qui est le cas le plus fréquent quand on utilise Primefaces. Tant qu'on reste sur une vue, les données restent, dès qu'on la quitte, elle sont purgées.
    Le problème du scope session c'est que justement, 2 accès concurrents (par exemple 2 onglets du navigateur sur la même application) vont utiliser le même bean côté serveur et ça, c'est une source d'incohérence des données monstrueuse.
    Citation Envoyé par Mishulyna Voir le message
    Des collègues ont utilisé FetchType.LAZY, ils ne se sont jamais plaint.
    Ils utilisent les EJB, un conteneur Spring ou le conteneur de servlet ? Parce que ça change pas mal la problématique dans une application web...

    J'utilise également le Lazy loading, ce n'est pas que je m'en plains, c'est juste qu'il faut faire attention parce que dès qu'on revient à la couche présentation, les entités sont détachées et il n'y a alors plus moyen d'accéder à des données lazy non initialisées.
    On s'y fait, et en pratique, on fait une couche supplémentaire (DTO) qui est le reflet des données utilisées par la couche présentation.
    Même si cette couche est un peu "chiante" à faire parce que souvent une copie du modèle entity, elle a le gros avantage d'abstraire l'application du modèle physique des données. On peut faire évoluer ce dernier plus facilement sans remettre en cause les applications existantes. Un autre avantage est que seules les données utilisées sont décritent.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Ils utilisent les EJB, un conteneur Spring ou le conteneur de servlet ? Parce que ça change pas mal la problématique dans une application web...
    Les EJB, Servlet et... GlassFish. Merci beaucoup pour vos explications très intéressantes !

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    J'oubliais un point, c'est quoi le problème de redirect avec FacesServlet ?
    J'utilise la redirection systématiquement et n'ai aucun problème, du coup, je m'interroge
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. combiner spring et jsf dans une application web
    Par encours dans le forum JSF
    Réponses: 1
    Dernier message: 28/02/2013, 11h33
  2. Spring MVC + JSF
    Par *alexandre* dans le forum Spring Web
    Réponses: 0
    Dernier message: 14/09/2008, 10h57
  3. Réponses: 1
    Dernier message: 03/06/2008, 20h36
  4. Faut-il combiner Spring avec Struts ou utiliser Spring MVC ?
    Par micanti dans le forum Frameworks Web
    Réponses: 3
    Dernier message: 23/04/2007, 16h31

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