【问题标题】:Spring Integration DSL Channel SupportSpring Integration DSL 通道支持
【发布时间】:2015-08-19 14:26:14
【问题描述】:

在 spring integration dsl 的当前版本 1.0.2 中,我可以看到一些基本通道不存在,例如 ReST/HTTP、TCP/UDP、JDBC、MQTT 等。

只是想知道这个协议/通道是在路线图中还是被故意排除在外。

PS:我发布的问题可能听起来很愚蠢,但我只是想知道原因。

【问题讨论】:

    标签: spring-integration spring-dsl


    【解决方案1】:

    从一方面你应该明白,解决所有这些问题已经足够大了。例如,HTTP module 在我们的雷达上发布 1.1 版本。

    另一方面,Spring Integration Java DSL 只是现有 Spring Java & Annotation 配置的一个版本,因此任何 @Bean 定义在那里也是有效的。

    使用这些所需的协议,您可以继续将其组件配置为@Bean,并通过.handle().from() EIP 方法引用它们。

    例如:

    @Bean
    public MessageSource<Object> jdbcMessageSource() {
        return new JdbcPollingChannelAdapter(this.dataSource, "SELECT * FROM foo");
    }
    
    @Bean
    public IntegrationFlow myFlow() {
       return IntegrationFlows.from(jdbcMessageSource())
                            .split(...)
                            .transform(...)
                            .handle(new MqttPahoMessageHandler("tcp://localhost:1883", "si-test-out"))
                            .get();
    }
    

    【讨论】: