java - 如果没有,spring 是否总是为每个新客户端创建一个新的 IOC 容器,那么它如何管理单例 bean?
问题描述
如果没有,spring 是否总是为每个新客户端创建一个新的 IOC 容器,那么它如何管理单例 bean?我真的很困惑,一个单例 bean 如何管理来自不同用户的请求?
解决方案
不会。它不会为每个新客户端创建新的 IOC 容器。这就是 bean 作用域存在的原因。如果您想保留每个请求的 bean,您可以使用 request 作为 bean 范围。单例不是线程安全的。所以每一个新的请求,它都会共享实例属性。
从文档中请求范围定义
将单个 bean 定义限定为单个 HTTP 请求的生命周期;也就是说,每个 HTTP 请求都将有自己的 bean 实例,该实例是在单个 bean 定义的后面创建的。仅在 Web 感知 Spring ApplicationContext 的上下文中有效。
推荐阅读
- python - 如何根据另一个数组对列表进行排序以在python中生成一个新数组
- oauth-2.0 - 如何使用承载令牌 Wso2 EI 调用 API?
- google-bigquery - 基于 BigQuery 中日期范围的查询返回错误
- google-sheets - 正则表达式匹配返回所有数字
- linux - 如何扩展 Oracle VM 模板 Oracle 数据库 19c dev/sdb1 存储空间
- android - 使用房间关系时如何通过查询访问子实体的列?
- twitter-bootstrap - 从 Txt 文件更新 Flask 进度条
- c++ - 在函数中传递二维数组
- javascript - 如何使用变量来控制 Javascript 的获取请求?
- amazon-web-services - 将 AWS CLI 输出格式化为 *markdown* 表