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

对于我们的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);

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值