Spring Integration:Transformer:file to Object

时间:2016-03-22 08:36:42

标签: java spring spring-integration

我是Spring Integration的新手,我正在尝试读取一个文件并转换为一个自定义对象,该对象必须发送到包含在jms.Message中的jms Queue。 这一切都必须使用注释完成。

我正在使用下面的目录阅读文件。

@Bean
@InboundChannelAdapter(value = "filesChannel", poller = @Poller(fixedRate = "5000", maxMessagesPerPoll = "1"))
public MessageSource<File> fileReadingMessageSource() {
    FileReadingMessageSource source = new FileReadingMessageSource();
    source.setDirectory(new File(INBOUND_PATH));
    source.setAutoCreateDirectory(false);
    /*source.setFilter(new AcceptOnceFileListFilter());*/
    source.setFilter(new CompositeFileListFilter<File>(getFileFilters()));
    return source;
}

Next Step将文件内容转换为Invoice Object(假设)。 我想知道变压器的传入消息类型是什么,我应该如何转换它。你能帮忙吗?我不确定传入的数据类型是什么,转换的对象类型应该是什么(它应该包含在Message中吗?)

@Transformer(inputChannel = "filesChannel", outputChannel = "jmsOutBoundChannel")
public ? convertFiletoInvoice(? fileMessage){

    }

1 个答案:

答案 0 :(得分:0)

有效负载为Filejava.io.File)。

您可以阅读文件并输出您想要的任何内容(Stringbyte[]Invoice等。

或者你可以使用一些标准变换器(例如FileToStringTransformerJsonToObjectTransformer等)。

JMS适配器会将对象转换为TextMessageObjectMessage等。