对于最新的稳定版本,请使用 Spring Integration 6.3.4spring-doc.cn

对于最新的稳定版本,请使用 Spring Integration 6.3.4spring-doc.cn

示例存储库中的以下示例显示了使用注释而不是 XML 时可用的一些配置选项:spring-doc.cn

@EnableIntegration (1)
@IntegrationComponentScan (2)
@Configuration
public static class Config {

    @Value(${some.port})
    private int port;

    @MessagingGateway(defaultRequestChannel="toTcp") (3)
    public interface Gateway {

        String viaTcp(String in);

    }

    @Bean
    @ServiceActivator(inputChannel="toTcp") (4)
    public MessageHandler tcpOutGate(AbstractClientConnectionFactory connectionFactory) {
        TcpOutboundGateway gate = new TcpOutboundGateway();
        gate.setConnectionFactory(connectionFactory);
        gate.setOutputChannelName("resultToString");
        return gate;
    }

    @Bean (5)
    public TcpInboundGateway tcpInGate(AbstractServerConnectionFactory connectionFactory)  {
        TcpInboundGateway inGate = new TcpInboundGateway();
        inGate.setConnectionFactory(connectionFactory);
        inGate.setRequestChannel(fromTcp());
        return inGate;
    }

    @Bean
    public MessageChannel fromTcp() {
        return new DirectChannel();
    }

    @MessageEndpoint
    public static class Echo { (6)

        @Transformer(inputChannel="fromTcp", outputChannel="toEcho")
        public String convert(byte[] bytes) {
            return new String(bytes);
        }

        @ServiceActivator(inputChannel="toEcho")
        public String upCase(String in) {
            return in.toUpperCase();
        }

        @Transformer(inputChannel="resultToString")
        public String convertResult(byte[] bytes) {
            return new String(bytes);
        }

    }

    @Bean
    public AbstractClientConnectionFactory clientCF() { (7)
        return new TcpNetClientConnectionFactory("localhost", this.port);
    }

    @Bean
    public AbstractServerConnectionFactory serverCF() { (8)
        return new TcpNetServerConnectionFactory(this.port);
    }

}
1 标准 Spring 集成注释,为集成应用程序启用基础结构。
2 搜索接口。@MessagingGateway
3 流客户端的入口点。 调用应用程序可以用于此 bean 并调用其方法。@AutowiredGateway
4 出站终端节点由 a 和包装它的使用者组成。 在此方案中,根据通道类型配置终结点。MessageHandler@ServiceActivator
5 入站端点(在 TCP/UDP 模块中)都是消息驱动的,因此只需要声明为简单实例。@Bean
6 此类提供了许多 POJO 方法,用于此示例流程(a 和服务器端和 a 客户端)。@Transformer@ServiceActivator@Transformer
7 客户端连接工厂。
8 服务器端连接工厂。
1 标准 Spring 集成注释,为集成应用程序启用基础结构。
2 搜索接口。@MessagingGateway
3 流客户端的入口点。 调用应用程序可以用于此 bean 并调用其方法。@AutowiredGateway
4 出站终端节点由 a 和包装它的使用者组成。 在此方案中,根据通道类型配置终结点。MessageHandler@ServiceActivator
5 入站端点(在 TCP/UDP 模块中)都是消息驱动的,因此只需要声明为简单实例。@Bean
6 此类提供了许多 POJO 方法,用于此示例流程(a 和服务器端和 a 客户端)。@Transformer@ServiceActivator@Transformer
7 客户端连接工厂。
8 服务器端连接工厂。