【发布时间】:2013-10-03 19:58:28
【问题描述】:
据我了解,spring mvc 控制器默认是线程安全的(如 servlet)。但我只想知道控制器内的任何私有辅助方法都是线程安全的吗?
我在控制器类中有两个映射,例如:/test 和 test/success。每次用户调用此 url 时,我都想使用服务方法(两个不同的调用)检查数据库中的用户状态和激活时间。所以我决定创建一个私有助手方法来检查状态。 那么有谁知道我的私有方法是线程安全的吗?
【问题讨论】:
-
不,你在这两点上完全错了:spring mvc 控制器默认是线程安全的(就像 servlet) 可见性与线程安全有什么关系?
-
mvc 控制器默认为单例,当请求到来时会像 servlet 生命周期一样调用新线程?
-
那么该线程的安全性如何?
-
我的意思是映射方法中的任何局部变量都是线程安全的。不是实例变量。
-
好吧,那是完全不同的。这并不能使类线程本身安全。而
private与线程安全无关。
标签: java multithreading spring spring-mvc