java - Spring Beans Mule - 接口(interface)/类类型的属性

标签 java spring ejb javabeans mule

我正在尝试指定一个具有接口(interface)IServiceHandler 的bean。我想允许将该属性设置为实现 IServiceHandler 接口(interface)的任何内容。例如GenericServiceHandler

这是我的 Mule 流程中的 bean 代码:

<spring:beans>
    <spring:bean id="Fake_Proxy" class="xxx.FakeWebServiceProxy" scope="prototype">
        <spring:property name="serviceHandler" value="xxx.GenericServiceHandler">
        </spring:property>
    </spring:bean>
</spring:beans>

FakeWebSericeProxy 有一个名为 serviceHandler 的属性,其类型为 IServiceHandler

问题是当我尝试运行 Mule 应用程序时,我不断收到以下消息:

java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [ca.mpac.esb.component.webservice.IServiceHandler] for property 'serviceHandler': no matching editors or conversion strategy found

我已阅读here Spring会自动处理这样的情况,但它似乎不适用于我的情况。

最佳答案

FakeWebServiceProxy中的字段似乎是IServiceHandler类型而不是Class类型,如果您只想接受该类,请更改属性的类型为Class。然后 Spring 应该将 String 值转换为适当的 Class 实例并注入(inject)它。

但是,如果您想注入(inject) IServiceHandler 类型的对象实例,则必须首先创建一个 bean,然后将其注入(inject)到 Fake_Proxy bean 中:

<spring:beans>
    <spring:bean id="serviceHandlerBean" class="xxx.GenericServiceHandler" scope="prototype"/>
    <spring:bean id="Fake_Proxy" class="xxx.FakeWebServiceProxy" scope="prototype">
        <spring:property name="serviceHandler" ref="serviceHandlerBean"/>
    </spring:bean>
</spring:beans>

关于java - Spring Beans Mule - 接口(interface)/类类型的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17575388/

相关文章:

java - 如何定义强制 IDE 显示 "not declared"警告的接口(interface)?

java - 暂时删除对象的属性?

java - 你能一步步解释一下如何在Jboss7.1的ejb模块中使用log4j吗?

jakarta-ee - 为什么是无状态 session bean?

java - 为什么这些变量没有加载到 ArrayList 中

java - Eclipse 更快的自动刷新

java - spring jpa - 具有相同标识符值的不同对象已经与 session 相关联

java - 保存实体时 Spring/Hibernate 编码错误

java - 使用 EJB 异步方法的正确方法

java - BigQuery - 如何列出所有用户定义函数 (UDF)