Spring Boot 到底是单线程还是多线程

前言

我们知道用Spring Boot来构建项目非常的方便,开发过程中我们会使用它来快速的构建项目,自带tomcat容器、启动也会将需要配置的bean全部加载到我们的Spring容器里面。但是在调用Controller方法的时候,是单线程、还是多线程的呢,今天我们来一起研究下。

执行Controller

首先我们通过执行两个Controller方法,发现打印的日志,执行这两个方法分别是不同的线程,但是对创建的变量进行了叠加,因为Spring的默认是以单例模式创建的,所以就会导致线程不安全。

我们在Çontroller头部加入@Scope,使它的作用域变成原型模式,这时候我们再次执行方法。

@RequestMapping(“test”)
@Scope(“prototype”)
@RestController
public class TestController {
复制代码

可以看到依旧是两个线程执行,但是我们变量的操作没有进行类加,而是分别进行了i++的操作,证明每次的reqeust请求都会创建一个bean。 注意⚠️:我们写代码的时候千万不能在Çontroller里面定义常量,然后方法里面进行操作,会有很大的问题,这里只是做演示。

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值