spring mvc使用时controller会有线程安全问题吗?

javaliuliu 2014-09-22 03:53:16
我一直很疑惑关于线程安全的问题,本人初级程序员,实际开发过程很少考虑这方面,好像也没遇到什么问题。
所以今天想请教大家有没有在spring mvc项目中遇见线程安全问题(请不要只是说servlet的service方式是单例的之类的理论)
...全文
8280 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
VOSTAR 2016-05-11
  • 打赏
  • 举报
回复
controller默认是单例的,不要使用非静态的成员变量(service无所谓,因为它不会变),否则会发生数据逻辑混乱。比如a线程将int i=3,b线程将 i = 4,然后a再访问 i 时, i的值为4
darkread 2016-04-06
  • 打赏
  • 举报
回复
线程安全,local 变量
howsun_zh 2014-09-24
  • 打赏
  • 举报
回复
Spring MVC的Controller用的是Servlet的思想,单例性能好,但线程不安全,如果用其它的Scope,性能会下降。 建议用默认单例方式,实现要共享对象属性,可以用ThreadLocal保护。
javaliuliu 2014-09-24
  • 打赏
  • 举报
回复
难道大家都没有遇见过线程安全的问题么?请分享一条由于线程安全出现的生产事故
  • 打赏
  • 举报
回复
没必要担心,spring mvc开发就是用controller代替action的作用。 安全的~
foggysource 2014-09-22
  • 打赏
  • 举报
回复
@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 { 一个会话创建一个
javaliuliu 2014-09-22
  • 打赏
  • 举报
回复
谢谢楼上两位,如果按照两位说的,只要避免使用类变量就不会有任何问题了吗?
Inhibitory 2014-09-22
  • 打赏
  • 举报
回复
前不久刚走controller里打印当前线程信息,每次访问的controller都是新建的: System.out.println(Thread::getCurrentThread());
wanghualeilei 2014-09-22
  • 打赏
  • 举报
回复 1
controller默认是单例 需要的数据都从方法参数传递 只要不定义类变量 就安全 放心吧

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧