概述
@Async 注解作用
在Spring中,基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。即可理解为,标注了@Async注解的方法,会被主线程交给子线程去完成。
@Async注解用法
/**
* 保存发送短信日志
* @param phone 手机号
* @param object 短信参数
* @return
*/
@Async
public void insertNotice(String phone, JSONObject object){
// 业务逻辑,通常是比较低效且耗时的业务逻辑
}
加了该注解,主程序调用insertNotice函数时,就不会等待该函数执行完成,类似启动子线程来执行。
new Thread(()->{
// 业务逻辑,通常是比较低效且耗时的业务逻辑
}).start();
区别在于,通过@Async方法虽然也是子线程执行业务逻辑,但是避免程序创建,维护及销毁线程所带来的内存占用,该注解调用的是Spring维护的一个大的线程池中的子线程。
@Async 注解无效
实际使用中,通过DEBUG发现加了该注解并没有出现异步执行的情况,是因为缺少@EnableAsync注解。
@Service
@EnableAsync
public class MySelfServiceImpl {
/**
* 保存发送短信日志
* @param phone 手机号
* @param object 短信参数
* @return
*/
@Async
public void insertNotice(String phone, JSONObject object){
// 业务逻辑,通常是比较低效且耗时的业务逻辑
}
}
一般的,如果在项目中经常使用该注解,一般会把它加到Application 类中,这样即可在全局使用该注解。
需要注意,使用该注解时,需要做一些配置,详细的可以百度。
@SpringBootApplication
@EnableAsync
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
最后
以上就是爱撒娇帽子为你收集整理的@Async 注解无效的问题的全部内容,希望文章能够帮你解决@Async 注解无效的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复