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 :

Injection de Service spring dans un managed bean JSF


Sujet :

Spring Java

  1. #1
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut Injection de Service spring dans un managed bean JSF
    Bonjour,

    Toujours sur le sujet Icefaces + Spring, je me pose quelques questions sur la meilleure façon d'utiliser mes Services spring depuis un bean JSF.

    Actuellement j'utilise une classe lookup du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public class ServiceFinder
    {
     
        public static Object findBean(String beanName)
        {
            FacesContext context = FacesContext.getCurrentInstance();
     
            ServletContext servletContext = (ServletContext) context.getExternalContext().getContext();
            ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(servletContext);
     
            Object obj = appContext.getBean(beanName);
     
            return obj;
     
        }
    }
    Je pourrais simplement me créer par dessus une classe avec des accesseurs plus typés pour bénéficier de méthodes telles que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CustomerService qqch = MyServiceFinder.GetCustomerService();
    Ce serait une première solution que je trouve pas inélégante, par contre je ne réalise pas les inconvénients qu'elle peut avoir niveau performance ou autres...

    J'ai vu aussi l'approche décrite dans la faq qui consiste à injecter le bean spring dans une propriété du managed bean déclarativement dans faces-config...
    Est-ce mieux?

    Et surtout, n'existe-t-il pas une possibilité de réaliser l'injection par annotation d'une propriété dans le managed bean?

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 143
    Points : 157
    Points
    157
    Par défaut
    Tu as regardé Spring Faces? C'est fait pour ça...

    http://static.springframework.org/sp...html/ch12.html
    Julien Dubois

    http://www.ippon.fr

  3. #3
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Merci
    Venant de .net j'ai commencé à faire du java serveur il y a pas longtemps.

    Je débute avec Jsf et Icefaces
    et avec spring
    et evec hibernate

    J'ai peur de plus m'en sortir si je rajoute Spring web flow par devant (c'est bien de ça que tu parles?), Surtout que je sais pas trop ce que ça implique sur l'existant...

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    ca sert probablement à rien d'y ajouter une couche de complexiter en utilisent une partie d un framework qui ne couvrirera pas forcément tes besoins ...


    Quelles sont les besoins que tu dois couvrir dans ton projet, à partir de la on pourra vraiment définir qu'est ce qui est le plus adapté ....

  5. #5
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Et bien j'ai fait le choix de Icefaces avec Spring et hibernate sur la base de la facilité de maintenance puis de l'évolutivité.

    Ce que je voulais à tout prix éviter c'était

    1) Faire du jdbc pur avec toute la plomberie qu'il faut écrire pour chainer les transaction entre les méthodes, mettre du SQL partout et coder manuellement la conversion d'un result set en entités.

    2) Utiliser des technos trop lourdes en ressources ou trop complexe.

    3) M'amuser à faire plein de javascript et micromanager du rendu html pour outputter le texte "checked" en face du bon <input radiobutton...

    Ceci avec la contrainte que mon travail tourne sans souci sur un serveur tomcat et sans bouffer 700mo de ram en idle.

    Sous asp.net, j'aurai résolu ça en achetant simplement la librairie devexpress et un générateur d'entités tel que llblgen.

    Et là de façon surprenante, je bute sur des petites choses, comme la redirection vers une page de login en JSF, la définition d'un welcome-file avec icefaces...
    Une fois que je saurais bosser correctement avec ces frameworks je suis sûr que je serai productif.

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    Pour répondre à ta question initiale si tu veux injecter des services dans tes managed bean oui il faut les déclarer dans ton faces-config.xml

    pour le welcome page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	<welcome-file-list>
    		<welcome-file>index.jsf</welcome-file>
    		<welcome-file>index.jsp</welcome-file>
    		<welcome-file>index.html</welcome-file>
    	</welcome-file-list>

  7. #7
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Merci Alexandre,
    Pour une raison inconnue, les welcome-file .iface ne passent pas je suis obligé d'utiliser une redirection.

  8. #8
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Salut,
    Pour ce qui de l'intégration Spring et JSF, http://blog.developpez.com/djo-mos/p...e-application/

    Pour la page de démarrage, c'est pas le bon forum pour ça (mais http://java.developpez.com/faq/jsf/?...NFIG_index_jsf et http://java.developpez.com/faq/jsf/?...FIG_index_jsf2 )

  9. #9
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Euh merci mais c'est plus compliqué que cela, il semble que les tags JSP soient indigestes pour le view handler compatible facelets de icefaces.
    Mais c'est pas mon souci principal.

  10. #10
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Citation Envoyé par _skip Voir le message
    Euh merci mais c'est plus compliqué que cela
    Comment ça ?
    je crois que mon message précédent répond à ta question du premier post :
    Et surtout, n'existe-t-il pas une possibilité de réaliser l'injection par annotation d'une propriété dans le managed bean?
    avec le lien blog, mais uasi à ton autre question :
    Et là de façon surprenante, je bute sur des petites choses, comme la redirection vers une page de login en JSF, la définition d'un welcome-file avec icefaces...
    Avec les 2 liens FAQ.

  11. #11
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Excuse-moi j'avais l'esprit braqué sur cette histoire de welcome file et j'en ai oublié le reste.

    Ta réponse pour les managed beans est effectivement très utile, j'ai lu en effet sur le net qu'on pouvait utiliser des beans spring directement comme backing bean JSF mais j'osais pas trop aller de l'avant avec cette méthode.

    En tout cas merci puis oublie mon précédent post qui était déplacé, pas ce que je voulais dire... bref .

Discussions similaires

  1. Erreur d'injection de l'EJB dans le Managed Bean
    Par bruneltouopi dans le forum Java EE
    Réponses: 18
    Dernier message: 04/01/2014, 17h44
  2. Réponses: 0
    Dernier message: 03/06/2010, 00h57
  3. Injection @EJB dans un Managed Beans
    Par Chabanus dans le forum JSF
    Réponses: 17
    Dernier message: 20/05/2010, 02h11
  4. Weblogic 10.0 : injection d'EJB dans managed bean JSF
    Par loic38_01 dans le forum Weblogic
    Réponses: 1
    Dernier message: 05/09/2008, 14h46
  5. Réponses: 3
    Dernier message: 15/09/2006, 15h01

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