2010-11-30 17 views
0

Je suis nouveau au printemps. J'ai cette question qui me dérange depuis un moment maintenant. Toute aide serait appréciée.Plusieurs implémentations passées dans une liste

Il existe une interface qui appelle une méthode getter.

interface MessageHandler{ 

    public List GetMessageCheckerList(); 

} 

Il existe une autre interface appelée MessageChecker qui a plusieurs implémentations. Dites MessageChecker1, TestChecker, etc. (supposons 2 pour l'instant)

Maintenant, comment puis-je définir cela dans le fichier de configuration xml.

J'ai en fait le haricot créé,

ici est le reste du code

<bean id="checkerList" class="java.util.ArrayList"> 
    <constructor-arg> 
     <list> 
      <ref bean="HL7Checker"/> 
     </list> 
    </constructor-arg> 
</bean> 


<bean id="HL7Checker" class="com.kahootz.messagereceiver.HL7CheckerImpl"> 
    <property name="messageExecutor" ref="Executor"/> 
</bean> 

S'il vous plaît conseils

Quand je lance en fait le programme à l'aide d'un principal méthode, je reçois le handle d'un des beans, Le HL7Checker devrait être passé dans une liste au Bean avec ID = mes sageHandler. Mais quand j'imprime la liste. C'est vide. Sans utiliser de ressorts et en utilisant seulement les méthodes getter et setter, je peux "définir" une liste et la récupérer en utilisant Get.

+0

Que voulez-vous dire par "ne fonctionne pas"? Dites-nous ce que vous attendez et ce que vous avez à la place. –

+0

Suis-je sur le bon chemin? S'il vous plaît avis – velapanur

+0

Je ne peux pas dire si vous êtes sur le bon chemin. Les définitions de bean semblent correctes, vous devriez donc nous montrer le code qui accède aux beans. Et s'il vous plaît faites le code aussi complet que possible. Le mieux serait un programme que l'on peut compiler. –

Répondre

2
  1. Presque tous vos noms ne sont pas conformes aux conventions de dénomination Java. Cela rend difficile pour les autres de comprendre votre code.
  2. La balise <ref> attend le nom d'un objet , pas le nom d'un classe. Vous devez donc définir un <bean id="testChecker" class="com.test.TestChecker" /> avant de pouvoir le référencer.
  3. N'utilisez pas le nom de package com.Test. Premièrement, il ne devrait contenir que des lettres minuscules. Deuxièmement, vous devriez être le propriétaire de ce nom.