我尝试将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。
我需要使用不同的语法吗? 感谢。
答案 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的答案解析了表达式。