开发者社区> 问答> 正文

spring如何同时处理多条请求?

小弟接触spring时间不长,之前从事C开发,对效率问题比较重视。
spring里面的bean管理是单例实现,在服务器同时接受多个请求是,是如何处理的?
如果多个请求中有相同的bean使用,这个看似与bean单例管理相矛盾,spring存在怎样的机制来处理这种情况的?
希望有人能解决这个疑惑,

展开
收起
小旋风柴进 2016-03-05 14:26:59 3724 0
3 条回答
写回答
取消 提交回答
  • 可以研究一下 spring 的 scope,用来规范 bean 的作用域

    singleton的话注意其中没有带状态的成员变量也应该是OK的

    2019-07-17 18:53:27
    赞同 展开评论 打赏
  • Spring能同时处理多条Web请求并不是Spring的能力,而是Tomcat、Jetty等Web容器做的事情。可以把Tomcat的模型简化为如下的代码:
    1,启动ServerSocket监听连接。
    2,当监听到连接后,把这个连接交给Tomcat自身线程池的一个线程。这个线程会完成对当前请求的处理。在处理过程中就会调用到SpringBean的各种方法。

    如果将Tomcat的线程池线程数量改为1,那么Spring中就只会有一个请求了。

    2019-07-17 18:53:27
    赞同 展开评论 打赏
  • 不矛盾啊,既然是单列,每次访问都是不同的线程,只要注意线程安全问题就可以了啊。所以在你的bean里面不能有成员变量,这样就不会有并发问题啊。

    2019-07-17 18:53:27
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多