gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 04:19:04 24 4
gpt4 key购买 nike

我正在尝试指定一个具有接口(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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com