HTTP 支持
Spring Integration 的 HTTP 支持允许运行 HTTP 请求并处理入站 HTTP 请求。HTTP 支持包含以下网关实现:HttpInboundEndpoint 和 HttpRequestExecutingMessageHandler。另请参阅 WebFlux 支持。
此依赖项为项目所需:
- Maven
- Gradle
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-http</artifactId>
<version>7.0.2</version>
</dependency>
compile "org.springframework.integration:spring-integration-http:7.0.2"
jakarta.servlet:jakarta.servlet-api 依赖必须在目标 Servlet 容器上提供。
章节总结
📄️ HTTP 入站组件
要通过HTTP接收消息,您需要使用HTTP入站通道适配器或HTTP入站网关。为了支持HTTP入站适配器,它们需要部署在servlet容器(如Apache Tomcat或Jetty)中。最简单的方法是使用Spring的HttpRequestHandlerServlet,通过在web.xml文件中提供以下servlet定义来实现:
📄️ HTTP 出站组件
本节介绍 Spring Integration 的 HTTP 出站组件。
📄️ HTTP 命名空间支持
Spring Integration 提供了 http 命名空间及相应的模式定义。要在配置中包含此命名空间,请在应用程序上下文配置文件中添加以下命名空间声明:
📄️ 使用 Java 配置 HTTP 端点
以下示例展示了如何使用 Java 配置入站网关:
📄️ 超时处理
在 HTTP 组件的上下文中,有两个时序区域需要考虑:
📄️ HTTP 代理配置
如果您位于代理服务器之后,并且需要为HTTP出站适配器或网关配置代理设置,可以采用以下两种方法之一。在大多数情况下,您可以依赖控制代理设置的标准Java系统属性。否则,您可以显式地为HTTP客户端请求工厂实例配置一个Spring bean。
📄️ HTTP Header Mappings
Spring Integration 为 HTTP 请求和 HTTP 响应提供了 HTTP 头部映射支持。
📄️ 集成图控制器
从版本 4.3 开始,HTTP 模块提供了 @EnableIntegrationGraphController 配置类注解和 \<int-http:graph-controller/> XML 元素,用于将 IntegrationGraphServer 作为 REST 服务公开。更多信息请参阅集成图章节。
📄️ 控制总线控制器
从版本 6.4 开始,HTTP 模块提供了一个 @EnableControlBusController 配置类注解,用于在 /control-bus 路径上将 ControlBusController 作为 REST 服务公开。底层的 ControlBusControllerConfiguration 为 ControlBusCommandRegistry 启用了急切初始化,以便为上述 REST 服务公开所有可用的控制总线命令。对 /control-bus 的 GET 请求会以如下格式返回应用程序的所有控制总线命令:
📄️ HTTP 示例
本节将通过几个示例来总结我们对 Spring Integration HTTP 支持的介绍。