Добавить динамическое значение в выражении spel - PullRequest
0 голосов
/ 04 июля 2019

У меня есть строка с постоянным значением, и я хочу передать ее в заголовок rename_to при использовании шлюза MV.

Я попробовал приведенный ниже фрагмент кода и один, добавив переменную в контексте и затем используя ее с #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]"))

Я получаю ошибку при запуске.Как я могу дать basePath в моем application.properties

1 Ответ

0 голосов
/ 04 июля 2019

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

String basePath;

Означает "внедрить" / home / 'в переменную basePath, если нет свойства basePath.

Вы не можете использовать поля из включающего класса, такие как это, в выражении SPeL, и вы не можете использовать там заполнители свойств в SpEL; Вы должны объединить строки в Java.

.headerExpression(RENAME_TO, "'" + this.basePath + "'" + " + headers[file_remoteFile]")
...