我是 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 检索它。
最佳答案
- 您的几乎所有名称都不符合 Java 命名约定。这使得其他人很难理解您的代码。
<ref>
标签需要对象的名称,而不是类的名称。所以你需要定义一个<bean id="testChecker" class="com.test.TestChecker" />
在您可以引用它之前。- 不要使用包名称
com.Test
。首先,它应该只包含小写字母。其次,您应该是该名称的所有者。
关于java - 在列表中传递多个实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4309508/