我需要构建一个动态路径,该路径将属性文件中定义的值与SpEL表达式的结果结合在一起,并且找不到正确的语法来实现这一目标。
我的情况是这样的:
<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:myprop.properties</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders" value="false"/>
</bean>
<bean id="fileNameToFSTree"
class="foo.bar.FileNameToFSTree"/>
<int-file:outbound-channel-adapter id="filesOut"
auto-create-directory="true"
directory-expression="${outDir} + @fileNameToFSTree.nameToTree(payload)"
delete-source-files="true"/>
鉴于myprop.properties
文件包含变量outDir
,我想将该变量放在文件出站的directory-expression
中。
显然,它定期评估${outDir}
,但出现以下异常:
org.springframework.expression.spel.SpelParseException: Expression [/tmp/output + @fileNameToFSTree.nameToTree(payload)] @0: EL1070E: Problem parsing left operand
我在文档或示例中都找不到这种情况的踪迹。
有任何提示吗?
答案 0 :(得分:1)
发布问题后立即找到答案:
How does Spring 3 expression language interact with property placeholders?
基本上,语法是:
directory-expression="'${outDir}' + @fileNameToFSTree.nameToTree(payload)"