0
我試圖配置基於應用屬性的Spring bean,我的最終目標是在下面的僞代碼來描述:訪問應用程序屬性
if ${my.config}
<bean id="myBean" class="path.to.MyBeanImplOne" />
else
<bean id="myBean" class="path.to.MyBeanImplTwo" />
end
其中my.config
是一個布爾屬性。 據this規劃環境地政司指導,#{${my.config} ? 'path.to.MyBeanImplOne' : 'path.to.MyBeanImplTwo'}
是一個有效的表達,所以我嘗試了以下配置:
<bean id="myBean" class="#{${my.config} ? 'path.to.MyBeanImplOne' : 'path.to.MyBeanImplTwo'}" />
,但得到以下異常:
Expression parsing failed; nested exception is org.springframework.expression.spel.SpelParseException: EL1041E: After parsing a valid expression, there is still more data in the expression: 'lcurly({)'
我不能在訪問屬性找到文檔用於xml配置的SpEL表達式。這僅支持Java配置嗎?
我見過一些提出的解決方案,我的問題(其中一些在這question)。我不想使用systemProperties,因爲我覺得這種配置不應該被指定爲運行參數,我覺得使用profiles對於這個特殊的用例來說是矯枉過正的。
有人能夠做我嘗試過的成功嗎?或者,有人可以確認我嘗試使用的語法是否確實在xml配置中不受支持。
我已經試過了,但我卻得到了一個例外,因爲它不能轉換字符串轉換爲布爾值,意味着它沒有提取屬性,而是將其作爲字符串處理。 –
將引號添加到'equals('true')' - 請參閱我的編輯。 –