0

我对 Java 多线程相当陌生。所以我希望有这方面经验的人能给我一个他们以前成功使用过的例子。

我的场景:我有一个 Spring MVC Web 应用程序。Web 应用程序中的控制器通过 Ajax 调用并返回一个 json 对象。在进入控制器和返回之间,我想在后台执行一条 SQL 语句。这意味着无论 SQL 是否已完成(或生成异常),都应该发生 JSON 返回。

任何帮助或建议将不胜感激。

@RequestMapping("/persist")
public @ResponseBody MyClass persist(HttpSession session, HttpServletRequest request) {

   MyClass obj = new MyClass();
   obj.setTitle("This is just a test");

   // Want to make into a background process
   MyDAO mine = new MyDAO();
   mine.performSQL();        

   return obj;    
}
4

2 回答 2

2

如果您使用的是 Spring 3.1+,请查看 @Async 注释。这是管理和抽象 ThreadPool 的一种非常简单的方法。

于 2013-07-06T03:54:15.550 回答
1

您可以在 Java 1.5 及更高版本中使用类似的东西

private ExecutorService executorService; // Initialize

@RequestMapping("/persist")
public @ResponseBody MyClass persist(HttpSession session, HttpServletRequest request) {

   MyClass obj = new MyClass();
   obj.setTitle("This is just a test");

   // Want to make into a background process
   executorService.execute(new Runnable() {
       public void run() {
          MyDAO mine = new MyDAO();
          mine.performSQL(); 
       }
   });          

   return obj;    
}
于 2013-07-06T03:52:16.057 回答