java - 在列表中传递多个实现

标签 java xml spring configuration interface

我是 Spring 新手,这个问题已经困扰我一段时间了。任何帮助将不胜感激。

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

interface MessageHandler{

    public List GetMessageCheckerList();

}

还有另一个名为 MessageChecker 的接口(interface),它有多个实现。 比如说 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。但当我打印出 list 时。它是空的。

在不使用 spring 且仅使用 getter 和 setter 方法的情况下,我可以“设置”列表并使用 Get 检索它。

最佳答案

  1. 您的几乎所有名称都不符合 Java 命名约定。这使得其他人很难理解您的代码。
  2. <ref>标签需要对象的名称,而不是的名称。所以你需要定义一个<bean id="testChecker" class="com.test.TestChecker" />在您可以引用它之前。
  3. 不要使用包名称 com.Test 。首先,它应该只包含小写字母。其次,您应该是该名称的所有者。

关于java - 在列表中传递多个实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4309508/

相关文章:

java - Apache TIKA - 添加新的元数据值

java - 如何在 Java 中将颜色名称转换为十六进制值

java - Jetty 的 XML 模式错误

java - 构造函数与类不匹配

java - swagger-ui 未找到 HTTP 请求的映射

xml - 在 Eclipse 和 Maven 中管理 Spring 命名空间模式

java - 无法加载库 'tesseract' : libtesseract. 所以:无法打开共享对象文件:没有这样的文件或目录

java - List<String> 在代码中的使用说明

sql-server - sql中openxml的动态列和记录

java - Spring Kafka JsonSerializer 用法