Spring : Injection dépendance au démarrage

Spring : Injection dépendance au démarrage - Java - Programmation

Marsh Posté le 06-07-2009 à 14:26:44    

Bonjour,
 
Comment injecter les dépendances de Spring au démarrage de l'application ?
Je m'explique...
 
Actuellement je dispose d'une classe MscRandomNodeHelper.java.
A cette classe sont injectée plusieurs dépendances. ex :
 
 

Code :
  1. <bean id="MscRandomNodeHelper"
  2.  class="org.alfresco.module.msc_core.common.test.helper.MscRandomNodeHelper"
  3.  parent="MscAbstractHelper">
  4.  <property name="mscNodeHelper">
  5.   <ref bean="MscNodeHelper" />
  6.  </property>
  7. </bean>


 
Dans ce cas, lorsque je "tire" le bean MscRandomNodeHelper, toute la grappe (en partant de MscRandomNodeHelper) est tirée.
Le problème est que pour choper la racine d'id MscRandomNodeHelper je suis obligé de me farcir la bonne vieille instruction :

Code :
  1. mscRandomNodeHelper= (MscRandomNodeHelper) applicationContext
  2.    .getBean( "MscRandomNodeHelper" );


 
Ce qui a pour conséquence de tirer la grappe.
Moi j'aimerais que dans ma classe MscRandomNodeHelper.java,  la variable "mscRandomNodeHelper" soit directement initialisée par Spring sans passer par l'instruction ci-dessus.
En clair, pour choper la grappe, je dois utiliser cette instruction sur la racine...et tous les fils sont initialisés correctement.
Maintenant je veux que l'initialisation se fasse directement à partir de la racine et pas seulement sur les fils et sous fils.
 
Compris ?
 
Merci  :jap:


Message édité par Giz le 06-07-2009 à 14:31:17
Reply

Marsh Posté le 06-07-2009 à 14:26:44   

Reply

Marsh Posté le 19-07-2009 à 18:02:09    

Rien compris.
 
Les bean sont tous initialisés au démarrage du context Spring. Sauf si tu as mis lazy-init.

Reply

Marsh Posté le 26-07-2009 à 04:23:23    

bugsan a écrit :

Rien compris.
 
Les bean sont tous initialisés au démarrage du context Spring. Sauf si tu as mis lazy-init.


 
 
Et dans un junit comment t'injectes les dépendances dans une classe de test sachant que c'est une classe "main", comment utilises-tu l'AOP pour transactionner toutes les méthodes de test ?

Message cité 1 fois
Message édité par Giz le 26-07-2009 à 04:24:09

---------------
Asus P5Q Pro | C2D E8400 3GHz@4GHz + Noctua NH-C12P | 2x2Go Patriot Extreme PC-8500 | GeForce GTX 460@Stock 1Go GLH | Crucial SSD M4 64Go Sata3
Reply

Marsh Posté le 26-07-2009 à 11:30:30    

Giz a écrit :

 


Et dans un junit comment t'injectes les dépendances dans une classe de test


Bah à la main, tu crées les mocks & autres qui vont autour de l'objet à tester puis tu fais tes tests [:petrus75]

 

Le DI se fait au niveau d'une application qui tourne, pas des tests [:petrus75]


Message édité par masklinn le 26-07-2009 à 11:32:10

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 26-07-2009 à 11:33:32    

T'as une classe abstraite de test avec Spring AbstractDependencyInjectionSpringContextTests. tu étends ça, tu précises ton applicationContext.xml, et hop!

 

un exemple complet, avec Spring hibernate et dbunit : http://zenoconsulting.wikidot.com/blog:8

Message cité 1 fois
Message édité par brisssou le 26-07-2009 à 11:34:40

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 26-07-2009 à 12:32:08    

brisssou a écrit :

T'as une classe abstraite de test avec Spring AbstractDependencyInjectionSpringContextTests. tu étends ça, tu précises ton applicationContext.xml, et hop!
 
un exemple complet, avec Spring hibernate et dbunit : http://zenoconsulting.wikidot.com/blog:8


C'est a partir de Spring 2.5 je crois. Si c'est une version de spring plus ancienne, il faut le faire soit même, mais ce n'est pas trop compliqué : le setUp charge le context via XmlContextMachinBidule et roulez jeunesse.


---------------
my flick r - Just Tab it !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed