在Spring集成中将setShouldAppendNewLine添加到FileWritingMessageHandler
我正在使用SpringIntegration4.1.0 我有一个用例,在这个用例中,我想生成一个单独的文件,其中包含流向通道的每条消息的一行 下面显示的是根据此链接的“定义集成流”部分执行此操作的配置:在Spring集成中将setShouldAppendNewLine添加到FileWritingMessageHandler,spring,spring-integration,spring-el,Spring,Spring Integration,Spring El,我正在使用SpringIntegration4.1.0 我有一个用例,在这个用例中,我想生成一个单独的文件,其中包含流向通道的每条消息的一行 下面显示的是根据此链接的“定义集成流”部分执行此操作的配置: 这似乎是一个相当常见的用例(至少在我的团队中是如此)。您会注意到,字符流写入消息处理程序(用于写入stdout和stderr)提供了this settersetShouldAppendNewLine(布尔值shouldAppendNewLine)。是否可以在文件写入MessageHandle
这似乎是一个相当常见的用例(至少在我的团队中是如此)。您会注意到,字符流写入消息处理程序
(用于写入stdout
和stderr
)提供了this settersetShouldAppendNewLine(布尔值shouldAppendNewLine)
。是否可以在文件写入MessageHandler
上提供类似的设置
有一点可以说,这实际上是变压器的工作(如示例所示),但是,如果它已经作为
CharacterStreamWritingMessageHandler
类上的设置提供,那么就决定在该类上结合这个特殊的转换器用例,我认为这是一个合理的请求,以使FileWritingMessageHandler
具有类似的行为。此外,对于SpEL表达式,其运行速度不一定与编译代码一样快(除非我们使用新的spring.expression.compiler.mode=MIXED
设置),这将节省一些处理时间,因为不需要转换器步骤。这对我来说似乎是一个合理的要求(考虑到流适配器的现有先例),尤其是在APPEND
模式下写入时
请打开“新功能”
更妙的是,考虑一下!
在point发行版(如4.1.1)中,我们通常不会在中途对模式进行更改,因此XML命名空间支持必须推迟到4.2
但是,如果将属性添加到类中,则可以在使用Java
@Configuration
时设置该属性,或者通过获取对处理程序的引用并在应用程序初始化期间设置该属性。我将为此打开一个JIRA,并尝试进行更改(可能需要几天时间)。我最终为此添加了一个JIRA。请看。Pull请求在这里:请参阅JIRA以获得XML名称空间支持。
<feed:inbound-channel-adapter id="news" url="https://spring.io/blog.atom">
<int:poller fixed-rate="5000"/>
</feed:inbound-channel-adapter>
<int:transformer
input-channel="news"
expression="payload.title + ' @ ' + payload.link + '#{systemProperties['line.separator']}'"
output-channel="file"/>
<file:outbound-channel-adapter id="file"
mode="APPEND"
charset="UTF-8"
directory="/tmp/si"
filename-generator-expression="'SpringBlog'"/>