【发布时间】:2013-01-11 15:56:59
【问题描述】:
我对 Spring 3 有疑问。 任何人都可以告诉我,控制器中的方法如下:
@ModelAttribute("nameAtributte")
public Customer getCustomerInfo(HttpServletRequest request) {
return service.getCustomer(request);
}
同步了吗?
【问题讨论】:
我对 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 方法中间的同一个断点处暂停。
【讨论】: