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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    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 : 41
    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
    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 éprouvé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

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

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

  3. #3
    Membre éprouvé
    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 : 41
    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
    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 : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    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
    Membre éprouvé
    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 : 41
    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
    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 : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    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>

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, 16h44
  2. Réponses: 0
    Dernier message: 02/06/2010, 23h57
  3. Injection @EJB dans un Managed Beans
    Par Chabanus dans le forum JSF
    Réponses: 17
    Dernier message: 20/05/2010, 01h11
  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, 13h46
  5. Réponses: 3
    Dernier message: 15/09/2006, 14h01

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