SpringEvent的应用( 二 )

效果

SpringEvent的应用

文章插图
 
异步启用成功
二、给SimpleAsyncEventMulticaster类中的taskExecutor字段赋值线程池创建SimpleAsyncEventMulticaster继承SimpleApplicationEventMulticaster//需要指定下beanName@Component("applicationEventMulticaster")public class SimpleAsyncEventMulticaster extends SimpleApplicationEventMulticaster {public SimpleAsyncEventMulticaster(){ThreadPoolTaskExecutor taskExecutor=new ThreadPoolTaskExecutor();taskExecutor.initialize();taskExecutor.setCorePoolSize(5);taskExecutor.setMaxPoolSize(100);taskExecutor.setQueueCapacity(1000);taskExecutor.setThreadNamePrefix("test-async");setTaskExecutor(taskExecutor);}}复制代码效果
SpringEvent的应用

文章插图
 
两种异步的区别如果给
SimpleAsyncEventMulticaster 的 taskExecutor 字段赋值线程池,所有监听类的执行都会是异步的,如果想要个别的任务执行是异步的话,需要重写
SimpleAsyncEventMulticaster 的 multicastEvent 方法,而使用@Async则不会,这也是为啥推荐的都是@Async方式实现异步 。
总结本文章介绍了SpringEvent和应用条件以及实例,这里没有写源码的解析,因为比较长,上述内容如果有误人子弟的地方,望在评论区留言 。




推荐阅读