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 :

Probléme d'instanciation des classe dao et des classe service


Sujet :

Spring Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Probléme d'instanciation des classe dao et des classe service
    Salut,

    Je suis entrain de réaliser un prjet avec spring hibernate strust,j'ai bien configurer le fichier de configuration de spring en ajoutant <context:annotation-config/> et <context:component-scan base-package="classedao" /> mais spring n'as pas fait l'injection des dépendances.
    Voila mon code :

    Fichier applicationcontext.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <beans>
    .....................
     
     <tx:annotation-driven transaction-manager="transactionManager" />
     
     
     
    <context:component-scan base-package="clientDao" />
    <context:component-scan base-package="clientService" />
    	 <context:annotation-config />
    <beans>
    classe dao :
    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
    17
    @Repository("clientDaoImp")
    @Component
    public class ClientDaoImpl  implements InterfaceDao {
     
    	SessionFactory sessFact = HibernateUtil.getSessionFactory();
        Session sess = sessFact.getCurrentSession();
     
    	@Override
    	public void save(Object inst) {
     
    	    org.hibernate.Transaction tr = sess.beginTransaction();
    	    sess.save(inst);
    	    tr.commit();
    	    System.out.println("Successfully inserted");
    	    sessFact.close();
     
    	}
    classe de service :
    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
    @Service
    public class ClientInterfaceImpl implements InterfaceService {
     
    	@Autowired
    	 ClientDaoImpl clientDaoImp;
     
     
     
    	@Transactional
    	@Override
    	public void save(Object inst) {
     
    		Client cl = (Client) inst;
    		clientDaoImp.save(cl);
    	}
    Merci de me répondre.

  2. #2
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 123
    Points : 77
    Points
    77
    Par défaut
    Est-tu sur que ton context d'application Spring est bien chargé?

    As-tu chargé la servlet dans le fichier xml. Par exemple comme ceci
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
      	<context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>
    		classpath*:applicationContext*.xml
    		</param-value>
    		<!--
    			<param-value>
    			classpath*:applicationContext*.xml
    			file:D:\workspace\MTT\WebContent\applicationContext-configuration.xml
    			</param-value>
    		-->
    	</context-param>
     
    	<listener>
    		<listener-class>
    			org.springframework.web.context.ContextLoaderListener
    		</listener-class>
    	</listener>
     
      <servlet>
    		<servlet-name>mtt</servlet-name>
    		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    		<load-on-startup>1</load-on-startup>
      </servlet>
    Pour utiliser Spring, il faut l'utiliser de bout en bout, il ne suffit pas de mettre les annotations, il faut que la classe qui contient les annotations soit elle-même chargé avec Spring.

    Petit détails, dans ton code, tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @Autowired
    ClientDaoImpl clientDaoImp;
    Tu fais une référence à une implémentation alors que justement, il faut faire une référence à une interface:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @Autowired
    ClientDao clientDao;
    Et c'est dans le fichier application-context.xml:
    il faut que tu déclare que l'implémentation du bean clientDao est ClientDaoImpl

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <bean id="clientDao" class="demo.core.dao.ClientDaoImpl"/>
    Enfin, je doute de la facilité à utiliser du Strut si tu utilise Spring. Il serait peut-être préférable de passer à Spring MVC, pour éviter l'empilement de 2 framework.

    Pour finir, je prêche pour ma paroisse, mais j'ai fais un tutorial sur la réalisation d'un projet Spring

    Bon courage

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/06/2013, 14h58
  2. [Débutant] integrer des methodes (implémentées dans une classe cs) a un web service
    Par mimi-imene-91 dans le forum Services Web
    Réponses: 0
    Dernier message: 29/11/2012, 14h28
  3. Réponses: 1
    Dernier message: 28/06/2012, 16h04
  4. Une classe pour mouler des instances qui soient des classes
    Par eyquem dans le forum Général Python
    Réponses: 2
    Dernier message: 03/09/2009, 17h09
  5. Réponses: 6
    Dernier message: 19/05/2007, 10h04

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