我有一個spring bean,我想在其中選擇。Spring 4 SPEL null注入
我想是這樣的:
<bean id="springSqlSessionConfigBasedFactory" class="org.mybatis.spring.SqlSessionFactoryBean" lazy-init="true">
<property name="dataSource" ref="infraDataSource" />
<property name="configLocation" value="#{ (!''.eqauls(${myBatis.configLocation})) ? ${myBatis.configLocation} : 'null' }" />
</bean>
所以 - 如果屬性(由屬性配置器加載)存在,應該是注入值,如果不是也應該注入一個空。
我得到這個異常運行上面:由@博胡斯拉夫 - 瑞光
Caused by: java.lang.NullPointerException
at org.springframework.expression.spel.ast.SpelNodeImpl.<init>(SpelNodeImpl.java:54)
at org.springframework.expression.spel.ast.Ternary.<init>(Ternary.java:36)
at org.springframework.expression.spel.standard.InternalSpelExpressionParser.eatExpression(InternalSpelExpressionParser.java:136)
at org.springframework.expression.spel.standard.InternalSpelExpressionParser.doParseExpression(InternalSpelExpressionParser.java:85)
at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:56)
at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:32)
at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpressions(TemplateAwareExpressionParser.java:154)
at org.springframework.expression.common.TemplateAwareExpressionParser.parseTemplate(TemplateAwareExpressionParser.java:85)
at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpression(TemplateAwareExpressionParser.java:73)
at org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:123)
我不知道這是否與你的問題有關,但在你的代碼中有'eqauls'而不是'equals'。改變它有幫助嗎? – 2014-11-02 10:18:38
尷尬,因爲我的錯字可能是 - 這不是原因。同樣的錯誤。 – YaOg 2014-11-02 12:23:15
我試圖在一個簡單的項目中重新創建你的代碼,並且我需要做的工作就是引用屬性佔位符,例如: '。但是如果我沒有得到與你的答案不同的異常,那麼可能不會是 –
2014-11-02 13:04:45