1

我正在尝试将 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。

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

4

2 回答 2

3

它应该得到解决 - 但你有一个缺少的单引号"${backup.folder}'... 应该是"'${backup.folder}'.... 我不确定您为什么要获得 NPE 而不是EL1046E:(pos 74): Cannot find terminating for string虽然。

于 2013-04-10T12:58:35.333 回答
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+...

编辑:

发现属性占位符确实在基于 Gary 的回答的表达式中解析。

于 2013-04-10T11:26:31.883 回答