How to solve the problem if the java SpringBoot annotation @ Async is not effective?
Most people do not understand the knowledge points of this article "java SpringBoot Note @ Async does not take effect", so the editor summarizes the following content, detailed content, clear steps, and has a certain reference value. I hope you can get something after reading this article. Let's take a look at this "java SpringBoot Note @ Async does not take effect how to solve" article.
Problem description:
Although @ EnableAsync and @ Async are added here, the asynchronous request still does not take effect.
Solution:
Method 1:
To call in the same class, you need to get the proxy object first, that is, get the object manually.
@ Service@EnableAsyncpublic class DemoService {public void add () {DemoService bean = SpringUtil.getBean (DemoService.class); System.out.println ("start"); bean.sendToKafka (); System.out.println ("end");} @ Asyncpublic void sendToKafka () {try {Thread.sleep (10000); System.out.println ("I'm awake!") ;} catch (InterruptedException e) {e.printStackTrace ();}}
Method 2:
Call different classes and inject them directly.
AsyncHandle.java (Asynchronous processing Class)
@ Service@EnableAsyncpublic class AsyncHandle {@ Asyncpublic void sendToKafka () {try {Thread.sleep (10000); System.out.println ("I'm awake!") ;} catch (InterruptedException e) {e.printStackTrace ();}}
DemoService.java (Business Class)
@ Servicepublic class DemoService {@ Autowired private AsyncHandle asyncHandle; public void add () {System.out.println ("start"); asyncHandle.sendToKafka (); System.out.println ("end") }} the above is about the content of this article on "how to solve the problem that the java SpringBoot annotation @ Async does not take effect". I believe everyone has a certain understanding. I hope the content shared by the editor will be helpful to you. If you want to learn more about the relevant knowledge, please follow the industry information channel.