pdf文档 Spring Framwork Web on Reactive Stack v5.3.36 SNAPSHOT

2.52 MB 182 页 0 评论
语言 格式 评分
英语
.pdf
3
摘要
本文档介绍了Spring Framework在响应式栈上的Web应用支持,包括Spring WebFlux框架、响应式WebClient、WebSocket API的实现及测试支持。文档详细描述了如何使用WebSocket处理器创建服务器端和客户端应用,如何利用RSocket进行消息传输,以及如何配置不同服务器如Netty、Undertow和Tomcat以支持响应式应用。此外,还涵盖了WebClient的配置选项,包括基 URL、默认头信息、客户端过滤器和HTTP客户端库的整合。测试部分提到了使用WebTestClient进行端到端测试的支持。
AI总结
以下是文档内容的简要总结: --- ## 《Spring Framework Web on Reactive Stack v5.3.36 SNAPSHOT》 本文档主要介绍了基于Reactive Streams API构建反应式Web应用的支持,适用于非阻塞服务器(如Netty、Undertow和Servlet 3.1+容器)。核心内容包括Spring WebFlux框架、反应式WebClient、测试支持以及反应式库的使用。 ### 1. **WebSocket API** - Spring提供WebSocket API,适用于客户端和服务器端应用,支持WebSocket消息处理。 - 服务器端通过实现`WebSocketHandler`创建WebSocket服务器,并将其映射到URL,示例如下: ```java public class MyWebSocketHandler implements WebSocketHandler { @Override public Mono handle(WebSocketSession session) { // 处理逻辑 } } ``` ### 2. **数据传输与RSocket** - 支持通过`data()`方法传输数据,接受`Flux`和`Mono`等反应式流。 - 可添加额外元数据(如安全令牌),并支持多种传输方式,包括: - **Fire-and-Forget**: 使用`send()`方法,返回`Mono`。 - **Metadata-Push**: 使用`sendMetadata()`方法,返回`Mono`。 ### 3. **测试支持** - `spring-test`模块提供模拟实现(如`ServerHttpRequest`、`ServerHttpResponse`)。 - `WebTestClient`支持WebFlux应用的端到端集成测试,无需HTTP服务器。 ### 4. **注解响应器** - 使用`@MessageMapping`和`@ConnectMapping`注解实现RSocket响应器,支持服务器端和客户端的对称实现。 - 示例配置: ```java @Configuration static class ServerConfig { @Bean public RSocketMessageHandler rsocketMessageHandler() { RSocketMessageHandler handler = new RSocketMessageHandler(); handler.routeMatcher(new PathPatternRouteMatcher()); return handler; } } ``` ### 5. **服务器配置与依赖** - 支持多种服务器(Netty、Undertow、Tomcat、Jetty),并提供相应的依赖项和配置示例。 - 使用`HttpHandler`适配器结合服务器API进行配置,例如: ```java HttpHandler handler = ...; UndertowHttpHandlerAdapter adapter = new UndertowHttpHandlerAdapter(handler); Undertow.builder().addHttpListener(port, host).setHandler(adapter).build().start(); ``` ### 6. **WebClient** - `WebClient`是Spring WebFlux中的HTTP客户端,功能性API基于Reactor,支持非阻塞、流式处理。 - 支持多种HTTP客户端库(如Reactor Netty、Jetty、Apache HttpComponents)。 - 示例配置: ```java WebClient client = WebClient.builder() .codecs(configurer -> ...) .build(); ``` --- 以上是文档的核心内容和关键信息的总结,重点突出了反应式Web应用的构建、配置和测试等方面的主要功能和用法。
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余 170 页请下载阅读 -
文档评分
请文明评论,理性发言.