Spring中用@Async注解标记的方法,称为异步方法,它会在调用方的当前线程之外的独立的线程中执行,其实就相当于我们自己new Thread(()-> System.out.println("hello world !"))这样在另一个线程中去执行相应的业务逻辑。@Async描述的方法底层会异步执行(不由web服务线程执行, 而是交给spring自带的线程池中的线程去执行。优点在于不会长时间阻塞web服务(例如tomcat)线程。
@Async注解使用条件:
1)@Async注解一般用在类的方法上,如果用在类上,那么这个类所有的方法都是异步执行的
2)所使用的@Async注解方法的类对象应该是Spring容器管理的bean对象;
3)@Async注解的应用有个前提,需要启动类上启动异步执行(添加@EnableAsync注解)