簡體   English   中英

java.lang.String的Spring實例化異常

[英]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(協作者)的引用

我建議移動最新版本的Spring-4.0.6.RELEASE

String類具有許多一元參數的構造函數,因此Spring可以選擇錯誤的一個,因此是異常。

我懷疑它會在較新版本的Spring 您說過使用Spring 2並且有一個與此相關的錯誤 但是它似乎在較新版本中已修復。

錯誤報告說,該錯誤已在3.0.3版中修復。

暫無
暫無

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

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