@EventListener注解的使用
前文
本文内容主要是关于spring框架中,关于观察者模式的应用@EventListener注解的使用方法。
注解详解
首先要了解一下观察者模式。观察者模式一般由消息发布者和消息监听者来组成,二者均可以为一个或多个,同时也可能出现某一对象既是消息发布者又是消息监听者的情况。我们常见的消息队列kafka等,以及redis所提供的发布订阅模式,都可以看作是观察者模式的一种应用。
回到本文的主题,@EventListener注解也是对于观察者模式的一种应用。被该注解修饰的方法,需要在注解中指定实际观察的类,也就是该方法其实是模式中的消息订阅方的观察者。而与此同时,需要有另一方的消息发布者,发布与所订阅消息同类型的事件。这里一般通过框架自带的applicationEventPublisher来进行实现。只要通过该对象进行相同类型事件的发布,即可在订阅处解析到所发布的消息,也就完成了观察者的整个流程。
而对于该注解本身,其实是通过EventListenerFactory来实现监听方法的创建。使用注解进行监听等同于我们直接利用框架自带的Appliaction进行消息的监听,实际是相同的观察者方式。只不过使用注解简化了我们手动创建监听的过程,也可以保证监听可以在我们项目中所需要的各个位置出现,更加灵活多变。
如何使用
至于该注解如何使用,主要是按照以下的方式:
通过上面二者的组合即可实现对于消息的发布与监听。