我对 Spring 3 有疑问。 任何人都可以告诉我,在 Controller 中使用这样的方法:
@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 发送了两个请求。而且似乎该方法是同步的,因为直到我在第一次服务期间释放断点后才开始服务第二个请求。我假设浏览器使用单个“保持 Activity ”连接,并且在未收到对第一个请求的响应之前,第二个请求根本不会从浏览器开始。
我为两个并发请求使用了两个不同的浏览器,并且有两个应用程序服务器线程都暂停在 modelAtr
方法中间的同一个断点上。
关于java - @ModelAttribute 同步了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14281845/