我正在寻找第一次使用spring集成:Spring集成示例中的Mail Attachment Sample是一个良好的开端,我今天已经为了我自己的目的而扩展,并且令人惊讶。
然而,当我在滚动时,我更愿意使用DSL,但是在研究DSL示例后,由于它们非常复杂,我有点迷失了。
如果有人可以共享任何弹簧集成示例的DSL重新实现,或者提供有关如何重新实现邮件附件示例的一些提示,我将不胜感激。
答案 0 :(得分:0)
目前还没有该版本的DSL版本,但也许一个很好的起点是DSL mail test cases?
答案 1 :(得分:0)
我成功地使用java 1.7重新实现了DSL。以下是有趣的内容:
@Bean
public IntegrationFlow polledEmails() {
return IntegrationFlows
.from(
Mail.imapInboundAdapter( "imaps://" + user + ":" + password + "@imap.gmail.com:" + imapPort + "/inbox" )
.javaMailProperties( javaMailProperties() )
.shouldDeleteMessages( true )
)
.channel( MessageChannels.direct( "incomingEmail") )
.get();
}
@Bean
public IntegrationFlow extractAttachments() {
return IntegrationFlows
.from( "incomingEmail" )
.transform( new EmailTransformer() , "transformit" )
.split( new EmailSplitter() , "splitIntoMessages" )
.channel( MessageChannels.direct( "attachments") )
.get();
}
@Bean
public IntegrationFlow writeAttachmentAsFile() {
return IntegrationFlows
.from( "attachments" )
// save attachment to file
.handle(
Files.outboundAdapter( "'target/out/' + headers.directory" )
.autoCreateDirectory( true ) )
.get();
}
@Bean(name = PollerMetadata.DEFAULT_POLLER)
public PollerMetadata poller() {
return Pollers.fixedDelay( 5000 ).get();
}
private Properties javaMailProperties() {
final Properties properties = new Properties();
properties.put( "mail.store.protocol" , "pop3" );
properties.put( "mail.debug" , "false" );
return properties;
}