在实际的项目开发中,许多业务方案都需要完成异步。例如,新闻通知,日志记录等可以通过异步和提高效率执行。那么,我们应该如何在框架中使用异步呢?
通常有两种类型的异步操作,
并将其封装在中国的ThreadPoolExecutor上,直接使用注释来实现它。这种注释使我们非常方便使用Spring完成异步操作。
定制常数类
配置线程池
请注意,您需要打开异步,嗯。
如果您需要异步执行或添加此方法的注释,则此方法是异步的。
该注释表明该方法输入的线程池是由KmallThreadPool方法创建的。
我们还可以单独指定方法名称
这样,当执行日记记录时,它会很快响应每个线程执行,并且时间耗尽操作将留在线程池中的线程中以执行异步执行
Spring使用@ASYNC注释标签,称为asynchronous方法。它在Spring Boot应用程序中很容易使用@ASYNC:
请注意,同一类中的调用异步方法没有生效:默认类中该方法的原因未截获,也就是说,呼叫方和呼叫方在同一类中,无法产生切割表面。该对象不受弹簧容器管理的管理,该方法未生效
解决方案:
如果同一类中的方法之间的调用也截获了,则需要使用弹簧容器中的实例对象而不是使用默认值,因为spring aop拦截了本示例的spring aop将使用bean实例的调用。使用此参考来调用本地方法以实现被拦截的目的
只有两种类型的异步返回类型:
请注意,如果未通过异步方法自定义线程池,则默认情况下使用。:不是真实的线程池。此类不重用线程。每个呼叫都会创建一个新线程。它将在增加时生成。
弹簧异步线池接口
查看要知道的源代码
有许多第一类,如下: