列表中传递了多个实现

时间:2010-11-30 00:33:38

标签: java xml spring configuration interface

我是Spring的新手。我有这个问题一直困扰着我一段时间。任何帮助将不胜感激。

有一个调用getter方法的接口。

interface MessageHandler{

    public List GetMessageCheckerList();

}

还有另一个名为MessageChecker的接口,它有多个实现。 说MessageChecker1,TestChecker等(现在假设为2)

现在我如何在配置xml文件中定义它。

我实际上已经创建了bean,

这是代码的其余部分

             

<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>

请建议

当我使用main方法实际运行程序时,我得到其中一个bean的句柄,HL7Checker应该在列表中传递给ID = messageHandler的Bean。但是当我打印出清单时。它是空的。

不使用spring并且只使用getter和setter方法,我可以“设置”一个列表并使用Get来检索它。

1 个答案:

答案 0 :(得分:2)

  1. 您的几乎所有名称都不符合Java命名约定。这使得其他人很难理解您的代码。
  2. <ref>代码需要对象的名称,而不是类的名称。因此,您需要先定义<bean id="testChecker" class="com.test.TestChecker" />,然后才能引用它。
  3. 请勿使用包名com.Test。首先,它应该只包含小写字母。其次,您应该是该名称的所有者。