千家信息网

java SpringBoot注解@Async不生效怎么解决

发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,这篇"java SpringBoot注解@Async不生效怎么解决"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收
千家信息网最后更新 2025年11月12日java SpringBoot注解@Async不生效怎么解决

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

问题描述:

这里虽然加了@EnableAsync@Async,但是异步请求依然没有生效

解决方案:

方法一:

同一个类中调用需要先获取代理对象,也就是手动获取对象

@Service@EnableAsyncpublic 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@EnableAsyncpublic class AsyncHandle {    @Async    public void sendToKafka() {        try {            Thread.sleep(10000);            System.out.println("我睡醒了!!!");        } catch (InterruptedException e) {            e.printStackTrace();        }    }}

DemoService.java (业务类)

@Servicepublic class DemoService {    @Autowired    private AsyncHandle asyncHandle;        public void add(){        System.out.println("开始");        asyncHandle.sendToKafka();        System.out.println("结束");    }}

以上就是关于"java SpringBoot注解@Async不生效怎么解决"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

0