基于注释的配置
示例存储库中的以下示例显示了使用注释而不是 XML 时可用的一些配置选项:
@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 并调用其方法。@Autowired Gateway |
4 | 出站终端节点由 a 和包装它的使用者组成。
在此方案中,根据通道类型配置终结点。MessageHandler @ServiceActivator |
5 | 入站端点(在 TCP/UDP 模块中)都是消息驱动的,因此只需要声明为简单实例。@Bean |
6 | 此类提供了许多 POJO 方法,用于此示例流程(a 和服务器端和 a 客户端)。@Transformer @ServiceActivator @Transformer |
7 | 客户端连接工厂。 |
8 | 服务器端连接工厂。 |