这篇“java SpringBoot注解@Async不生效怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java SpringBoot注解@Async不生效怎么解决”文章吧。
问题描述:

这里虽然加了@EnableAsync
和@Async
,但是异步请求依然没有生效
解决方案:
方法一:
同一个类中调用需要先获取代理对象,也就是手动获取对象
@Service
@EnableAsync
public class DemoService {
public void add(){
DemoService bean = SpringUtil.getBean(DemoService.class);
System.out.println("开始");
bean.sendToKafka();
System.out.println("结束");
}
@Async
public void sendToKafka() {
try {
Thread.sleep(10000);
System.out.println("我睡醒了!!!");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
方法二:
不同的类调用,直接注入即可
AsyncHandle.java (异步处理类)
@Service
@EnableAsync
public class AsyncHandle {
@Async
public void sendToKafka() {
try {
Thread.sleep(10000);
System.out.println("我睡醒了!!!");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
DemoService.java (业务类)
@Service
public class DemoService {
@Autowired
private AsyncHandle asyncHandle;
public void add(){
System.out.println("开始");
asyncHandle.sendToKafka();
System.out.println("结束");
}
}
以上就是关于“java SpringBoot注解@Async不生效怎么解决”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注天达云行业资讯频道。