2016-08-16 84 views
1

我们有,我们正在努力实现以下用例:读取文件同步

  1. 发件人职位JMS队列的消息。有效负载具有文件的名称。
  2. 我们需要从预先配置的目录中读取文件(JMS消息中提供的文件名),并将内容存储在数据库中。

是否有任何在文件'命名空间'中可用的弹簧组件,允许我们读取文件而不是轮询文件?

我知道我们可以轮询预先配置的目录,但是我们想看看是否同步读取(同步读取选项允许我们从过程中读取文件,这与读取选项不同轮询新文件,并且是流程的开始)由Oracle产品提供,也可以在Spring Integration中找到。

+0

这个问题可能意味着什么?如果不知道文件的名称,如何“轮询”文件的内容? –

+0

我的问题是:提供了一个文件名;弹簧集成的组件允许我在中途读取文件 –

+0

是的,我明白了。如何查看我的答案? –

回答

1

通过名称创建File的操作非常简单,我们只是没有介绍关于此事的一些组件。

这就是:

<transformer expression="new java.io.File(payload)"/> 

或Java DSL变种:

.<String, File>transform(File::new) 

后,您可以使用外的开箱变压器(一AbstractFilePayloadTransformer实现),以获得内容和发送给数据库。

正确的,SpEL表达式和Lambda可以根据预配置的目录和传入名称自行定制以建立适当的文件路径。