我对Spring 3有问题。
任何人都可以告诉我,控制器中的方法如下:
@ModelAttribute("nameAtributte")
public Customer getCustomerInfo(HttpServletRequest request) {
return service.getCustomer(request);
}
是同步的吗?
最佳答案
原因是此方法不同步。但似乎我了解您如何得出这个结论。我使用以下代码:
@Controller
@RequestMapping("/url")
public class ModelAtrCotroller {
@ModelAttribute
public String modelAtr() {
return "foo";
}
@ResponseBody
@RequestMapping(method = RequestMethod.GET)
public String index() {
return "index";
}
}
我在
modelAtr
方法中放置了一个断点,并从同一浏览器的两个不同选项卡向URL发送了两个请求。似乎该方法是同步的,因为为第二个请求提供服务直到我在第一次提供服务时释放了断点才开始。我假设浏览器使用单个“保持活动”连接,并且直到未收到对第一个请求的响应之前,第二个请求才从浏览器开始。我对两个并发请求使用了两个不同的浏览器,并且在
modelAtr
方法的中间,两个应用程序服务器线程都暂停在同一断点上。