深入探索依赖注入中的作用域:从Web到自定义场景
1. Web特定作用域概述
在Web开发中,作用域是管理对象状态的重要工具。依赖注入框架中的作用域决定了每次请求某个键时返回的实例类型,如是否为新实例、旧实例或共享实例。常见的Web作用域包括HTTP请求作用域和HTTP会话作用域。
1.1 HTTP请求作用域
在同一请求中,从注入器请求的键始终返回相同的实例。当请求完成时,这些请求作用域的对象会被丢弃,后续请求会创建新的实例。请求作用域的对象通常不是多线程的,也不是线程安全的。因为一个线程通常在整个请求期间专门处理该请求,并且提供请求作用域的集成层经常将作用域对象缓存在线程局部变量中。
1.2 HTTP会话作用域
HTTP会话作用域是请求作用域的进一步扩展。由于HTTP协议是无状态的,为了在服务器端维护与用户的长时间交互,开发者通过将同一用户的一系列请求串在一起,形成一个会话。会话具有以下重要特征:
- 代表单个唯一用户与Web应用程序的交互。
- 由同一用户的一个或多个请求组成。
- 并非所有请求都一定是会话的一部分。
- 是一种在请求之间保存状态的存储。
- 会话的两个逻辑端点是用户登录和注销。
会话作用域的实例在同一用户的所有请求之间共享,可用于跟踪用户的各种信息,如安全凭证、近期活动、偏好设置等,以提高用户体验和性能。
1.3 会话作用域的应用示例
以漫画商店为例,有三个重要组件:
- ComicSearch :请求作用域的服务,根据给定条件搜索漫画目录。
- Comi
超级会员免费看
订阅专栏 解锁全文
9

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



