HTTP 支持
Spring Integration 的 HTTP 支持允许运行 HTTP 请求和处理传入的 HTTP 请求。HTTP 支持包括以下网关实现:HttpInboundEndpoint
和 HttpRequestExecutingMessageHandler
。另请参阅 WebFlux 支持。
你需要将这个依赖添加到你的项目中:
- Maven
- Gradle
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-http</artifactId>
<version>6.4.2</version>
</dependency>
compile "org.springframework.integration:spring-integration-http:6.4.2"
jakarta.servlet:jakarta.servlet-api
依赖必须在目标 Servlet 容器上提供。
部分总结
📄️ Http 入站组件
要通过 HTTP 接收消息,你需要使用 HTTP 入站通道适配器或 HTTP 入站网关。为了支持 HTTP 入站适配器,它们需要部署在诸如 Apache Tomcat 或 Jetty 之类的 servlet 容器中。最简单的方法是使用 Spring 的 HttpRequestHandlerServlet,通过在 web.xml 文件中提供以下 servlet 定义:
📄️ HTTP 外发组件
本节描述了 Spring Integration 的 HTTP 外发组件。
📄️ HTTP 命名空间支持
Spring Integration 提供了一个 http 命名空间和相应的模式定义。要将其包含在配置中,在应用程序上下文配置文件中提供以下命名空间声明:
📄️ 配置 HTTP 终结点与 Java
以下示例展示了如何使用 Java 配置入站网关:
📄️ 超时处理
在HTTP组件的上下文中,有两个需要考虑的定时区域:
📄️ HTTP 代理配置
如果你在代理后面,并且需要为 HTTP 外发适配器或网关配置代理设置,你可以采用两种方法之一。在大多数情况下,你可以依赖控制代理设置的标准 Java 系统属性。否则,你可以显式配置一个 Spring bean 作为 HTTP 客户端请求工厂实例。
📄️ HTTP 头映射
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 支持的介绍。