最近在阅读micronaut的文档,在监听事件和发布事件这里有些思考,记录一下。
监听事件和发布事件一同学习比较容易理解。
发布事件的实现要在类中用@Inject注解注入
@Singleton public class SampleEventEmitterBean{ @Inject private ApplicationEventPublisher eventPublisher; public void publishSampleEvent(){ eventPublisher.publishEvent(new SampleEvent()); } }监听事件的实现 ①可通过方法实现ApplicationEventListener这一接口中的onApplicationEvent()这个方法。
@Singleton public class SampleEventListener implements ApplicationEventListener<SampleEvent> { private int invocationCounter = 0; @Override public void onApplicationEvent(SampleEvent event){ invocationCounter++; } public int getInvocationCounter(){ return invocationCounter; } }②可以通过@EventListener注解的方式,来实现事件监听,此方法也通过了测试。
@Singleton public class AnnotationListener { private int invocationCounter = 0; @EventListener public void onSampleEvent(SampleEvent event){ invocationCounter++; } public int getInvocationCounter(){ return invocationCounter; } }注意
我这个demo里面事件发布和事件监听的对象,是SampleEvent类。要注意这个对象的位置。
验证通过。证明监听事件能够监听到发布事件的发布。