远程目录表达式字符串

Remote directory expression string

在我的项目中,我使用 Spring Integration Sftp。我尝试使用 spEL 配置 remoteDirectoryExpression,但主要问题是我在应用程序属性中存储的 SFTP 文件夹值作为 sftp.folder=/test/

handler.setRemoteDirectoryExpressionString("\'" + properties.getFolder() + "\'" + ".concat(headers['region'])");

properties.getFolder() 是 class 和 @ConfigurationProperties

这个解决方案工作正常,但我不喜欢它。那么,有没有可能以某种方式在没有花括号的情况下编写 spEl 表达式?

but can`t get property from application.properties using expressions like ${}

没错:您不能在此 setter 级别上执行此操作,因为没有属性占位符知识,因为它已经是一个普通的 Java 调用。

您可以通过 @Configuration class 的 属性 上的 @Value 注释或通过 @Bean 方法参数来执行您想要的操作:

@Bean
FtpMessageHandler ftpMessageHandler(@Value("'${sftp.folder}' + headers['region']") String remoteDirectory)