letyoungsoon 2022-09-21 00:24 采纳率: 100%
浏览 47
已结题

spring的scop问题

spring中有状态的bean的问题

概要:如果一个bean有自己的实例变量,可以在程序运行中保存数据。那么第一个请求结束以后,第二个请求拿到这个bean,此时这个bean里面的实例变量还是第一次的吧?在单例和原型的scop下都是这样的吧?

这样的现象要怎么合理的解决呢?设置为requst的scop吗?
  • 写回答

6条回答 默认 最新

  • 关注

    你仔细看看,平时设计成单例bean的对象都是没有状态的。有状态的bean被设置成单例被多个线程同时使用就会出问题了;多个线程同时都往这个bean中设置数据,那么数据就会被覆盖。只有一个最后线程的数据设置成功了,其余线程从bean拿到的数据就是最后一个线程设置的。你说的设置scope就是解决的办法,每一个request请求都会生成一个新的bean;还可以用ThreadLocal,这样也行。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 10月2日
  • 已采纳回答 9月24日
  • 创建了问题 9月21日

悬赏问题

  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档