[英]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.