03、Eureka教程-Spring-Cloud-Netfix-Eureka监听器

一、Spring-Cloud-Netfix-Eureka的5大监听器

1、 EurekaRegistryAvailableEvent服务器可用时触发;
2、 EurekaServerStartedEvent服务器启动时触发;
3、 EurekaInstanceRegisteredEvent服务注册时触发;
4、 EurekaInstanceRenewedEvent服务续约时触发;
5、 EurekaInstanceCanceledEvent服务下线时触发;

二、笔者是怎么找到这5个监听器的,以及是怎么去寻找他们调用的方法。

1、 首先秉着SpringBoot在整合其他项目时,特别是它自己的亲儿子时,总喜欢搞一些监听器所以就先在idea上模糊查询了一下,接着就发现了上面那五个监听器图中第一个和第二个是Eureka原生的监听器,目测好像从来没用过,就去偷偷摸摸的看了一眼结果发现EurekaEvent就是一个空的接口,里面没有任何回调包括它的三个子类里面好像也没什么东西估摸着是作者想着反正要和SpringCloud整合,就不开发了吧(纯属笔者猜测);

 

2、 点进去各个监听器类,看看命名和百度翻译的注释,大概弄懂了每个监听器是干什么的接着话不多说,直接先看EurekaServerStartedEvent监听器选中EurekaServerStartedEvent方法按ALT+F7查看是哪里调用了他,结果发现是EurekaServerInitializerConfiguration类的start方法调用了他然后就看一下这个类有没有实现什么接口,发现它实现了ServletContextAware,SmartLifecycle,Ordered三个接口这个start方法是SmartLifecycle接口里面的方法是在Spring容器刷新的最后一步中调用的但是笔者这里也发现了一件有趣的事,Eureka它是先回调了服务可用事件,在去回调服务启动事件,不懂不懂其次其他的几个监听器也用同样的方法找到调用的地方,随便看看就行了有兴趣的可以一直溯源方法的源头,会很有趣的;