Bro*_*nuk 6 spring ioc-container
如果在spring配置中在单例范围内定义服务,如果多个用户同时尝试访问它(即作为依赖注入控制器)会发生什么?它应该引起冲突吗?或者IoC容器将保留稍后的呼叫,直到第一个完成?如果是这样,它应该会降低大型应用程序的性能,这听起来不对我.任何人都可以给我一个正确的答案吗?
顺便说一句,我记得,如果它不是单例,IoC容器将根据请求数量汇集几个实例.有人可以证实吗?
Sea*_*oyd 13
如果多个用户同时尝试访问它(即作为依赖注入您的控制器)会发生什么?
可以同时访问单个bean多次.这就是它始终必须是线程安全的原因
它应该引起冲突吗?
只有当你没有使它成为线程安全的时候
或者IoC容器将保留稍后的呼叫,直到第一个完成?
不,那太糟糕了
顺便说一句,我记得,如果它不是单例,IoC容器将根据请求数量汇集几个实例.有人可以证实吗?
Spring具有以下范围(请参阅Bean范围参考):
也:
从Spring 3.0开始,线程范围可用,但默认情况下未注册.有关更多信息,请参阅文档
SimpleThreadScope.
您描述的是对象池.在Spring中,它将被实现为Prototype-scoped FactoryBean.在内部,它将使用像Apache Commons/Pool这样的库.
单例就是这样——单例。一个实例由 Spring 上下文管理,所有请求同时通过该实例。由您决定是否使其线程安全。
如果您的 bean 不是线程安全的,请考虑使用非单例范围的 bean。Spring 允许您使用请求、会话和原型范围。
| 归档时间: |
|
| 查看次数: |
8179 次 |
| 最近记录: |