簡體   English   中英

Spring Beans Mule-接口/類類型的屬性

[英]Spring Beans Mule - Property of type interface/class

我試圖指定一個具有接口IServiceHandler的bean。 我想允許將該屬性設置為實現IServiceHandler接口的任何內容。 例如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:無法將[java.lang.String]類型的值轉換為屬性'serviceHandler'的必需類型[ca.mpac.esb.component.webservice.IServiceHandler]:未找到匹配的編輯器或轉換策略

我在這里讀到Spring會自動處理這樣的情況,但是它似乎不適用於我的情況。

FakeWebServiceProxy的字段似乎是IServiceHandler類型,而不是Class類型,如果您只想接受該類,請將屬性的類型更改為Class 然后,Spring應該將String值轉換為適當的Class實例並將其注入。

但是,如果您想注入類型為IServiceHandler的對象實例,則必須首先創建一個bean,然后將其注入到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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM