一、應用場景
- Eureka服務自動注冊(tomcat啟動后自動注冊服務)
二、工作原理
ApplicationEvent:發布/訂閱的通信媒介,應用事件。默認有上下文事件(contextClosedEvent等)
ApplicationEventPublisher:發布者;可發布ApplicationEvent
@EventListener:訂閱者;監聽某個事件發生后,自動調用方法
WebServerInitializedEven:自定義事件,繼承ApplicationEvent;tomcat
三、用例
@EnableDiscoveryClient:注冊中心服務自動注冊;默認實現類之一Eureka自動注冊。
@EnableEurekaClient:Eureka注冊中心服務自動注冊;注冊流程為:
- SpringBoot初始化服務
- SpringBoot啟動tomcat成功之后,發布服務器啟動成功事件WebServerInitializedEvent
- EurekaAutoServiceRegistration:通過EventListener訂閱事件WebServerInitializedEvent,並向Eureka注冊服務。
四、SWOT分析
S | W | O | T | |
---|---|---|---|---|
@EventListener | 1、可直接在方法上注釋,使用方便 | 1、較分散 | ||
實現ApplicationListener
|
1、實現集中在監聽類中 | |||