4

我想知道Spring请求是否同步。这是我的场景:

我有一个映射到 Controller1 的请求,它本身调用我的DAO1.aMethod(). 假设另一个用户调用了相同的方法,并且另一个请求被 Controller1 映射到DAO1.aMethod()第一次调用DAO1.aMethod()返回值之前。

我问这个,因为我有一个运行复杂算法的 DAO,我很好奇如果他开始另一个用户的另一个呼叫是否会干扰计算。

我这边的测试表明,如果在我的 DAO 中保留一个字段说“iRunsCalculation”并跟踪实际状态,第二个请求可以读取请求一个设置的状态。

4

1 回答 1

0

我假设“同步”是指它们是同时运行还是排队。它们当然可以同时运行,这就是 Web 容器通常的工作方式。Spring 与这里发生的事情并没有太大关系,因为它将是您的 servlet 容器来处理传入的请求并将它们放到 SpringDispatcherServlet中。

如果您的计算以某种方式依赖于当前和过去对该服务的调用,那么如果您没有正确保护您的同步,很可能会遇到一些“同步”问题。

于 2013-01-11T15:13:48.933 回答