5.4 Axum 状态管理:共享状态与依赖注入,构建可扩展的 Web 应用
引言:让 Handler 不再孤立
在之前的章节中,我们已经学习了如何创建路由和 handler。但目前为止,我们的 handler 都是“无状态”的纯函数。它们接收请求,返回响应,但无法与应用程序的其他部分或彼此之间共享信息。
然而,几乎所有真实的 Web 应用都需要状态 (State)。这些状态可能包括:
- 数据库连接池:以便 handler 能够查询和修改数据。
- 应用配置:例如,API 密钥、功能开关等。
- 缓存客户端:如 Redis 客户端。
- 模板引擎实例:用于渲染 HTML 页面。
- 全局计数器或指标。
如何安全、高效地将这些共享状态提供给我们的 handler?这就是状态管理要解决的问题。axum 提供了一套简单、类型安全且极其灵活的状态管理和依赖注入机制,它同样构建于 tower 的生态之上。
本章,我们将深入学习 axum 的状态管理,从简单的 State 提取器,到更高级的 FromRef 模式,让你能够构建出结构清晰、易于测试和扩展的大型应用
订阅专栏 解锁全文
76

被折叠的 条评论
为什么被折叠?



