您的位置:首页 > 编程语言 > Java开发

spring使用Async实现异步或者延迟的操作

2016-07-06 15:39 591 查看
对于我们的web项目,一般来说,我们都是同步执行一些数据,所谓同步就是按照顺序,执行完这个然后有序的执行下一个,但是有时我们需要延迟执行一些数据,并且这些数据我们不需要实时的返回的,比如是注册成功,我们会返回一封邮件给用户,这个邮件我们可以在用户注册成功后的5分钟,或者10分钟后向用户发送,那么我们就需要一个延迟函数。一般来说,我们可能直接就会使用new thread开启一条线程来实现来实现,会在Spring mvc或者Struts中这样实现

new Thread(new Runnable() {

@Override

public void run() {

try {

Thread.sleep(5000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}).start();

但是从spring 3.0版本开始,我们可以直接通过Async注解来实现我们的延迟操作了。

要使用Async注解,首先在applicationContext.xml加入如下代码

<task:annotation-driven/>

@ResponseBody

@RequestMapping(value = “/register”)

public String register(String username,String passwd) {

JSONObject jsonObject=new JSONObject();

jsonObject.put(“status”, 1000);

jsonObject.put(“username”, username);

AsyncSendMail(username);

return jsonObject.toString();

}

@Async

public void AsyncSendMail(String touser){

try {

Thread.sleep(5000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

//执行发送邮件的操作

System.out.println(“touser==”+touser);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: