深入探索依赖注入中的作用域:从Web到自定义
1. 特定领域作用域:Web 相关
1.1 请求作用域注意事项
在 Web 应用里运用 Spring 时,除了之前提到的 ContextLoaderListener ,还需添加特定监听器,这样就能借助 Spring 进行漫画购物操作。
在请求作用域方面,有几点要重点留意:
- 通常一个线程会在整个请求周期内专门处理该请求,这意味着请求作用域的对象并非多线程的,且一般不具备线程安全性。
- 提供请求作用域的集成层常常会在线程本地缓存作用域对象。
- 极少数情况下,Web 服务器可能会用多个线程来处理一个请求(比如处理长时间运行的异步请求)。要是在这种情形下设计请求作用域库,就得留意线程本地的假设。
1.2 HTTP 会话作用域
HTTP 会话作用域是在请求作用域基础上的进一步拓展。由于 HTTP 协议是无状态的,难以在服务器端维持与用户的长时间交互,所以开发者借助巧妙的技术把同一用户的一系列请求串联起来,称之为会话。
HTTP 会话具备以下重要特性:
- 一个会话代表单个唯一用户与 Web 应用的交互。
- 会话由同一用户的一个或多个请求构成。
- 并非所有请求都一定属于某个会话。
- 会话是一种能在请求间保存状态的存储机制。
- 会话的两个逻辑端点分别是用户登录和注销。
会话在跟踪特定用户状态方面极为有用,具体用途如下:
- 出于安全考量,跟踪用户的凭证。
- 为实现快速导航,跟踪用户近期的活动(例如面包屑导航)。
深入理解依赖注入作用域
超级会员免费看
订阅专栏 解锁全文
2

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



