关于访问java中同一个对象问题

华而不实 2013-10-16 11:38:13
描述:
spring管理action和service,其中action配置成scope="request"而service没有设置。根据spring说明,action为每次请求为不同对象,而service为单例模式即所有注入到action中的service为同一个对象。
疑虑来了:
不同的请求,会不会在service某个方法中发生参数覆盖现象?
举例说明:
两个请求访问testAction(其中注入testService),spring实例化两个对象testAction1、testAction2去访问testService中的testMethod方法,其中testAction1传递参数值a,testAction2传递b参数。会不会出现b覆盖a的情况?
...全文
137 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
闲去野鹤 2013-10-16
  • 打赏
  • 举报
回复
引用 1 楼 zuoziji_lj 的回复:
参数不是静态的就不会覆盖
+1
卡卡吉利 2013-10-16
  • 打赏
  • 举报
回复
参数不是静态的就不会覆盖
华而不实 2013-10-16
  • 打赏
  • 举报
回复
查了一下资料。个人觉得这个的解释还是要回到java对方法的调用过程中。 java内存中存在栈和堆,方法执行时会在当前线程栈中压入一个栈帧,该栈帧包含局部变量区、操作数区和帧数据区,方法执行完成栈帧出栈,完成方法调用。 这样来说,两个action为不同的线程,拥有不同的栈区,执行方法时,会在各自当前栈加入调用的service方法栈,这样从某种意义上来说就是独立的,java栈内存是线程安全的。 请大神多多指教。。
华而不实 2013-10-16
  • 打赏
  • 举报
回复
应该说不是成员变量就不会覆盖。如果是成员变量即使不是静态的也会存在覆盖的情况。

67,513

社区成员

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

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