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 et configuration de DAO [Framework]


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 51
    Par défaut Injection et configuration de DAO
    Bonjour à tous,

    Je suis débutant dans Spring et j'ai quelques questions qui me bloquent :

    J'ai une application comprenant 3 DAO :
    - PersonDAO / PersonDAOImpl
    - RequestDAO / RequestDAOImpl
    - PageDAO / PageDAOImpl

    Je viens de créer un DAO Générique IDAO<T> et son implémentation AbstractDAOImpl.
    Tous mes DAO héritent de cette classe IDAO<T>.

    1 - Comment puis-je injecter un bean PersonDAO dans RequestDAO ?

    Chaque classe a son propre service :
    2 - Comment puis-je injecter un bean PersonDAO dans le service RequestService ?

    La classe main fait appel à plusieurs services :
    3 - Comment puis-je injecter plusieurs services dans ce main ?

    4- Comment configurer le DAO generic, les 3 DAO et 3 services dans spring-config.xml ?

    J'avais avant un seul DAO et un seul service, ma conf était la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	<bean id="dao" class="dao.Dao" />
    	<bean id="service" class="service.Service">
    		<property name="dao" ref="dao" />
    	</bean>
    Avec la répartition en plusieurs DAO et plusieurs services, je suis complètement bloqué, je ne sais plus quoi faire !

    Pouvez-vous m'aider SVP ?

    Merci bcp par avance,

    PS : Si vous voulez, je peux vous mettre en ligne mon code source.

  2. #2
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Citation Envoyé par hkefi Voir le message
    J'avais avant un seul DAO et un seul service, ma conf était la suivante :

    <bean id="dao" class="dao.Dao" />
    <bean id="service" class="service.Service">
    <property name="dao" ref="dao" />
    </bean>
    Il te faut autant de déclarations de dao que tu as de classes dao. De même, si un de tes services recourt à plusieurs dao, il te faut faire plusieurs injection (plusieurs déclarations property).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 51
    Par défaut Plusieur DAO ?
    Bonjour Tommy,
    Merci beaucoup pour ta réponse.

    J’ai 2 autres questions très importantes :

    1 - Comment puis-je injecter un bean VoitureDAO dans PersonneDAO ?
    Puis-je faire ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <bean id="personneDao" class="dao.PersonneDaoImpl" >
    	<property name="voitureDao" ref="voitureDao" />
    </bean>
     
    <bean id="personneService" class="service.PersonneServiceImpl">
    	<property name="personneDao" ref="personneDao" />
    	<property name="activiteDao" ref="activiteDao" />
    </bean>
     
    <bean id="voitureDao" class="dao.VoitureDaoImpl" />
    <bean id="voitureService" class="service.VoitureServiceImpl">
    	<property name="voitureDao" ref="voitureDao" />
    	<property name="personneDao" ref="personneDao" />
    </bean>
    2- Si j'ai 20 DAO et 20 serivces, dois les déclarer tous dans le fichier de configuration ? Y-a-t-il un autre moyen plus simple pour éviter de modifier le fichier de configuration chaque fois que je rajoute un DAO ou un service ?
    J'ai vu sur le site de spring qu'ils recommandent de créer un DAO générique dont hérite tous les autres DAO. (http://www.ibm.com/developerworks/ja...enericdao.html). Avec cette solution puis-je configurer uniquement le DAO générique dans le fichier de conf ou il faut quand même ajouter tous les autres DAO ?
    Dans le même esprit, je voulais aussi créer un service générique dont hériterait tous les services ? Qu'est-ce que vous en pensez ?
    Merci infinement pour votre aide.

  4. #4
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Tu peux injecter n'importe quel bean dans n'importe quel autre, à condition qu'il possède les setteurs qui vont bien.

    Donc, pour ta question 1 c'est correct.

    Pour ta question 2, tu peux bien évidememnt faire de l'héritage. Mais si tu veux de la souplesse en extensibilité, sans être contraint de rajouter des déclarations supplémentaires dans ton contexte, je te conseille d'utiliser les annotations introduites pas spring :

    @Repository pour les DAO
    @Service pour les services

    @Autowired pour le tissage.

    Lire : http://static.springframework.org/sp...otation-config

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

Discussions similaires

  1. [Web Services] Problème d'injection de DAO avec Spring
    Par devTyty dans le forum Spring
    Réponses: 2
    Dernier message: 04/09/2014, 13h13
  2. Réponses: 2
    Dernier message: 26/04/2012, 14h12
  3. [Framework] NullPointerException sur DAOs injectés
    Par TheVirus2013 dans le forum Spring
    Réponses: 7
    Dernier message: 03/06/2010, 14h05
  4. [Integration] EJB pas injecté dans mon DAO
    Par evilnet dans le forum Spring
    Réponses: 2
    Dernier message: 19/04/2010, 18h14
  5. dependency injection dao Jpa
    Par allstar dans le forum JPA
    Réponses: 1
    Dernier message: 16/01/2010, 03h12

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