spring mvc 线程安全问题说明

spring mvc 线程安全问题


controller默认是单例  需要的数据都从方法参数传递  只要不定义类变量 就安全,与servlet一致


spring mvc : 根据@Scope作用域线程安全(可能安全,可能不安全)

struts2 : action每次请求都会创建一个实例(线程安全)

servlet: 单例模式(线程不安全)


Spring MVC的Controller用的是Servlet的思想,单例性能好,但线程不安全,如果用其它的Scope,性能会下降。

建议用默认单例方式,实现要共享对象属性,可以用ThreadLocal保护。

如下定义就是单例:

@Controller
@RequestMapping("/fui")
public class FuiController extends SpringController {

}
如下定义就是每次创建对象:

@Controller
@Scope("prototype")
@RequestMapping("/fui")
public class FuiController extends SpringController {

}

如下定义就是一个会话创建一个对象:

@Controller
@Scope("session")
@RequestMapping("/fui")
public class FuiController extends SpringController {

}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值