2014-07-15 152 views
1

我有必須在運行時綁定的bean。構造函數參數春季屬性

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> 
     <constructor-arg ref="${requiredBean:mysql}"/> 
</bean> 

<bean id="mysql" class="xxx.xxx.xxxxxx"> 
</bean> 

<bean id="mongo" class="xxx.xxx.xxxxxx"> 
</bean> 

在屬性文件I添加的屬性

requiredBean=mongo 

但由於某些原因從屬性文件中的requiredBean不是由彈簧拾取(屬性文件正確配置和所有其他屬性加載正確,除了這一個)。

我只是想知道,如果我用,用於聲明構造AA裁判的ARG語法是正確的或有任何其他方式申報。

請幫我解決這個問題。

讓我知道,如果這個問題不明確。

+0

沒有足夠的信息。發佈正在讀取的屬性文件的路徑以及未讀取的屬性文件的路徑。 –

+0

屬性文件讀取正常。在屬性文件中的所有其他屬性都得到反映,除了這一個屬性 – vamsi

+0

什麼是'在'xxx.xxx.xxxxxx'的' –

回答

1

,如果你確信你提正確的屬性(沒有拼寫錯誤)(因爲你已經爲.properties的內容提到的),那麼問題是別的東西,而不是財產本身。嘗試刪除默認值。它必須拋出如下異常:::: java.lang.IllegalArgumentException:無法解析字符串值「$ {XYZ}」中的佔位符'XYZ'「。如果它不拋出這個異常,問題根本就與這個bean沒有關係。

+0

我刪除了默認值,它拋出異常「無法解析佔位符'requiredBean'」。但是我正在閱讀我的所有屬性,所以我需要更改任何內容。 – vamsi

+0

我可以問你改變屬性名稱(僅用於測試目的)在兩個地方說myprop,然後再試一次嗎? myprop = mongo和。我想知道這個requiredBean是否是關鍵字。 – Puneetsri

+0

你好謝謝,這肯定爲我工作..actually我所用的「entity.datasource」這可能是某些關鍵字,它解決它FORME – vamsi