文件出站通道和远程目录表达式

时间:2013-04-10 10:56:27

标签: spring directory integration spring-el

我尝试将SpEL和bean值结合起来生成

directory-expression="${backup.folder}'+T(java.io.File).separator+new    java.text.SimpleDateFormat('yyyyMMdd').format(new java.util.Date())"

中的

int-file:outbound-channel-adapter

,但它不起作用。

问题在于检索属性($(backup.folder))值,因为它会产生NullPointerException。

我需要使用不同的语法吗? 感谢。

2 个答案:

答案 0 :(得分:3)

它应该得到解决 - 但你缺少开头单引号"${backup.folder}'... 应该是"'${backup.folder}'...。我不知道你为什么要获得NPE而不是EL1046E:(pos 74): Cannot find terminating for string

答案 1 :(得分:2)

看起来属性占位符无法在Spring-EL表达式中解析。 另一种解决方法是使用@bean类型表达式引用bean,并使用PropertyPlaceHolder表达式填充bean。例如:

<bean name="aString" class="java.lang.String">
    <constructor-arg value="${backup.folder}"></constructor-arg>
</bean>

directory-expression="@aString + T(java.io.File).separator+...

编辑:

发现propertyplaceholder确实根据Gary的答案解析了表达式。