Spring MVC Controller Transactional

我试图获得一个Spring @ MVC Controller方法,该方法已经注释了@Transactional如果在方法返回之前在客户端上拉网络电缆就会回滚,我似乎无法让它工作,这是一个例子我正在努力实现的目标。

@Transactional(rollbackFor = IOException.class) @RequestMapping(value = "/test") public @ResponseBody Integer testMethod(HttpServletResponse response) throws Exception { LOG.debug("Put breakpoint here, and pull network cable on client..."); //IMHO this should throw an IOException, but it isn't doing? response.getOutputStream(); return 10; } 

因此,如果我在日志记录语句中放置一个断点,然后拔掉客户端上的网络电缆然后播放,我希望从response.getOutputStream()获得IOException,但事实并非如此,任何帮助将不胜感激?

不要使控制器具有事务性。 事务是针对服务层的。 通常的做法是有一个基本控制器,其他控制器扩展并包含error handling – 在这种情况下,可以返回不同的exception消息。

您正在拔掉客户端上的网络电缆,并期望服务器上出现exception? 这没有意义。