[英]Spring Instantiation exception with java.lang.String
下面的bean有什么問題? 使用spring-beans-2.0,我得到以下異常:
<bean id="logger" class="java.lang.String">
<constructor-arg value="logger"/>
</bean>
記錄器Bean注入到:
<bean id="loggerType" class="java.lang.String" scope="prototype">
<constructor-arg value="logger" />
</bean>
loggerbean注入其他參數正確為“ java.lang.String”的bean。
例外
Could not instantiate bean class [java.lang.String]: Illegal arguments for constructor;
nested exception is java.lang.IllegalArgumentException:
java.lang.ClassCastException@5083198c
如果要注入另一個bean,則使用ref
屬性而不是value
屬性。
<bean id="loggerType" class="java.lang.String" scope="prototype">
<constructor-arg ref="logger" />
</bean>
或將<ref/>
標記與bean
作為屬性一起使用
<bean id="loggerType" class="java.lang.String" scope="prototype">
<constructor-arg>
<ref bean="logger"/>
</constructor-arg>
</bean>
有關更多信息,請參閱Spring文檔 對其他Bean(協作者)的引用
String
類具有許多一元參數的構造函數,因此Spring
可以選擇錯誤的一個,因此是異常。
我懷疑它會在較新版本的Spring
。 您說過使用Spring 2
並且有一個與此相關的錯誤 。 但是它似乎在較新版本中已修復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.