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 :

Maven+Spring : pb avec @Autowired [Framework]


Sujet :

Spring Java

  1. #1
    zev
    zev est déconnecté
    Membre actif
    Inscrit en
    Octobre 2004
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 204
    Points : 220
    Points
    220
    Par défaut Maven+Spring : pb avec @Autowired
    Bonjour.

    Je suis en train de tester Spring Annotations.
    Lorsque j'appelle un service, celui-ci est instancié mais pas le dao sous-jacent malgré une annotation @autowired.
    Pourtant, lorsque je remplace les annotations par la notation classique dans applicationContext.xml, il n'y a aucun problème.

    Voici le contexte :
    J'ai fait un projet Maven sous Eclipse.
    J'ai importé la dépendance Spring dans le pom.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring</artifactId>
    	<version>2.5.6</version>
    </dependency>
    (Déjà je ne comprends pas pourquoi on ne peut pas voir la version 3 dans les repositories.)

    Voici mon applicationContext.xml :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <beans 
    	xmlns="http://www.springframework.org/schema/beans" 
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xsi:schemaLocation="
    		http://www.springframework.org/schema/beans 
    		http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    		http://www.springframework.org/schema/context 
    		http://www.springframework.org/schema/context/spring-context-2.5.xsd">
     
    	<context:annotation-config />
    	<context:component-scan base-package="fr.vtest.annotations" />
     
    </beans>
    La classe 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
    16
     
    @Service("userService")
    @Scope("singleton")
    public class UserServiceImpl implements UserService {
     
    	public UserServiceImpl() {
    		super();
    	}
     
    	private UserDAO userDAO;
     
    	@Autowired
    	public void setUserDAO(@Qualifier("userDAO") UserDAO userDAO) {
    		this.userDAO = userDAO; 
    	}
    }
    qui devrait m'instancier le dao suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    @Repository("userDAO")
    @Scope("singleton")
    public class UserDAOImpl implements UserDAO {
    }
    A l'appel du service j'ai bien le message :
    Creating shared instance of singleton bean 'userService',
    mais pas celui du dao.
    Si j'utilise le fichier xml de manière classique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <bean id="userService" class="fr.test.service.UserServiceImpl" scope="singleton">
    	<property name="userDAO">
    		<ref bean="userDAO" />
    	</property>
    </bean>
    j'ai bien :
    Creating shared instance of singleton bean 'userService'
    Creating shared instance of singleton bean 'userDAO'

    J'ai cru lire qqpart que c'était peut-être dû à l'utilisation de Maven.
    J'ai essayé de zapper maven en mettant le jar de spring à la main dans le BuildPath mais ça ne change rien.

    Toute piste sera appréciée

  2. #2
    zev
    zev est déconnecté
    Membre actif
    Inscrit en
    Octobre 2004
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 204
    Points : 220
    Points
    220
    Par défaut
    En fait j'ai refait un projet minimaliste, avec seulement le jar spring, le service et le dao.
    Le pb est le même : le dao n'est pas instancié lors de l'appel du service.
    Peut-être un pb avec mon applicationContext.xml ?
    Pourtant il est assez basique et m'a l'air de correspondre à la doc :/

  3. #3
    zev
    zev est déconnecté
    Membre actif
    Inscrit en
    Octobre 2004
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 204
    Points : 220
    Points
    220
    Par défaut
    Bah il suffit de revenir poster pour trouver la solution tout seul

    Le problème venait de mon appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ClassPathResource res = new ClassPathResource("applicationContext.xml");
    XmlBeanFactory factory = new XmlBeanFactory(res);
    UserService userService = (UserService) context.getBean("userService");
    alors qu'il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    UserService userService = (UserService) context.getBean("userService");
    Vu à cet endroit : [ame="http://forum.springsource.org/showthread.php?t=58050"]@Autowired annotation not working - Spring Community Forums[/ame]
    Voilà, je ne connais pas ces subtilités donc je vais approfondir la manière dont ça se passe de ce côté.

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

Discussions similaires

  1. [Security] Spring Security avec JSF (sans Maven)
    Par regalo dans le forum Spring
    Réponses: 12
    Dernier message: 20/12/2014, 01h48
  2. [Spring] Intégration avec Quartz
    Par nicdo77 dans le forum Spring
    Réponses: 9
    Dernier message: 10/04/2013, 23h03
  3. maven spring hibernate
    Par friedamichelle dans le forum Maven
    Réponses: 1
    Dernier message: 19/02/2008, 07h56
  4. Réponses: 7
    Dernier message: 24/10/2007, 18h44
  5. [Maven 2]Pb avec maven-default-skin
    Par marcxa44 dans le forum Maven
    Réponses: 29
    Dernier message: 02/08/2007, 14h48

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