我是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){
}
答案 0 :(得分:0)
有效负载为File
(java.io.File
)。
您可以阅读文件并输出您想要的任何内容(String
,byte[]
,Invoice
等。
或者你可以使用一些标准变换器(例如FileToStringTransformer
,JsonToObjectTransformer
等)。
JMS适配器会将对象转换为TextMessage
,ObjectMessage
等。