applicationPublish、eventListener实现java后端异步

  话不多少,直接实战——用法,想懂理论的自行百度~

1.主要用了spring的发布消息、监听事件机制。

          applicationEventPublisher发布事件→EventListener监听事件→执行异步操作。如图:

    


                                                               图1  applicationEventPublisher(注:spring4.2以后的版本才能发布object类型,之前的只能发布ApplicationEvent)



                                                  图2   构建一个Event,它只是一个普通的java类 (event类主要用于传参)


                                             图3  利用注入的  ApplicationEventPublisher  把Event发布出去,监听器就能监听到该event并执行监听器






                                图 4  监听器


               如图: 1.首先它是一个spring组件

                           2.必须声明它是异步的

                           3.声明它是一个监听器

                           4.方法中传递的参数表明它是监听哪个事件

                           5.从监听事件中取参                  

         




整体逻辑是:主程序把事件发布出去,主程序就继续执行(保存用户注册信息到数据库),监听器监听到该事件就会执行监听器里的代码,两者同时进行

                    比如监听器里执行的是访问某个服务(根据手机号查询归属地,然后更新到用户信息表里),这样用监听器实现异步的好处是:不必等查询归属地结束再保存用户

                    信息,而且无论什么查询手机归属地更新用户信息是否成功,都不会影响 主程序保存用户信息。

主要是面向服务架构,很多逻辑都是需要访问不同的服务。




                         


























































你可能感兴趣的:(applicationPublish、eventListener实现java后端异步)