Spring Integration Java 配置和 DSL 提供了一组方便的构建器和一个流畅的 API,允许您从 Spring 类配置 Spring Integration 消息流。@ConfigurationSpring中文文档

(另请参阅 Kotlin DSLSpring中文文档

(另请参阅 Groovy DSLSpring中文文档

用于 Spring Integration 的 Java DSL 本质上是 Spring Integration 的门面。 DSL 提供了一种将 Spring Integration 消息流嵌入到应用程序中的简单方法,方法是将 fluent 模式与 Spring Framework 和 Spring Integration 中的现有 Java 配置结合使用。 我们还使用并支持 lambda(可用于 Java 8)来进一步简化 Java 配置。BuilderSpring中文文档

咖啡馆提供了使用DSL的一个很好的例子。Spring中文文档

DSL 由 fluent API 提供(请参阅)。 这将生成组件,该组件应注册为 Spring bean(通过使用注释)。 构建器模式用于将任意复杂的结构表示为可以接受 lambda 作为参数的方法层次结构。IntegrationFlowIntegrationFlowBuilderIntegrationFlow@BeanSpring中文文档

唯一收集 Bean 中的集成组件(实例、实例等),以便通过 .IntegrationFlowBuilderMessageChannelAbstractEndpointIntegrationFlowIntegrationFlowBeanPostProcessorSpring中文文档

Java DSL 直接使用 Spring Integration 类,并绕过任何 XML 生成和解析。 然而,DSL在XML之上提供的不仅仅是语法糖。 它最引人注目的功能之一是能够定义内联 lambda 来实现终端节点逻辑,从而消除了对外部类实现自定义逻辑的需要。 从某种意义上说,Spring Integration 对 Spring 表达式语言 (SpEL) 和内联脚本的支持解决了这个问题,但 lambda 更容易、更强大。Spring中文文档

以下示例显示了如何使用 Java Configuration for Spring Integration:Spring中文文档

@Configuration
@EnableIntegration
public class MyConfiguration {

    @Bean
    public AtomicInteger integerSource() {
        return new AtomicInteger();
    }

    @Bean
    public IntegrationFlow myFlow(AtomicInteger integerSource) {
        return IntegrationFlow.fromSupplier(integerSource::getAndIncrement,
                                         c -> c.poller(Pollers.fixedRate(100)))
                    .channel("inputChannel")
                    .filter((Integer p) -> p > 0)
                    .transform(Object::toString)
                    .channel(MessageChannels.queue())
                    .get();
    }
}

上述配置示例的结果是,它会在启动后创建Spring Integration端点和消息通道。 Java 配置既可用于替换 XML 配置,也可用于扩充 XML 配置。 您无需替换所有现有 XML 配置即可使用 Java 配置。ApplicationContextSpring中文文档