在 spel 表达式中添加动态值

Add dynamic value in spel expression

我有一个具有常量值的字符串,我想在使用 MV 网关时将其传递给 rename_to header。

我尝试了下面的代码片段,其中一个是在上下文中添加变量,然后将其与#basePath

一起使用
@Value("${basePath:/home/}")
String basePath;

.enrichHeaders(h -> h
                        .headerExpression(RENAME_TO, "'${basePath}' + headers[file_remoteFile]")
                        .headerExpression(REMOTE_FILE, "headers[file_remoteFile]")
                        .header(REMOTE_DIRECTORY, "headers[file_remoteDirectory]"))

我在启动时遇到错误。如何在 application.properties

中提供 basePath

@Value("${basePath:/home/}")

String basePath;

表示“如果没有basePath 属性.

,则将'/home/'注入变量basePath

您不能像在 SPeL 表达式中那样使用封闭 class 中的字段,也不能在 SpEL 中使用 属性 占位符;您必须连接 java.

中的字符串
.headerExpression(RENAME_TO, "'" + this.basePath + "'" + " + headers[file_remoteFile]")