⼊⼝:SpringCloud充分利⽤了SpringBoot的⾃动装配的特点
- 观察eureka-server的jar包,发现在META-INF下⾯有配置⽂件spring.factories
springboot应⽤启动时会加载EurekaServerAutoConfiguration⾃动配置类。 - EurekaServerAutoConfiguration类
⾸先观察类头分析
图中的 1)需要有⼀个marker bean,才能装配Eureka Server,那么这个marker 其实是由@EnableEurekaServer注解决定的。
也就是说只有添加了@EnableEurekaServer注解,才会有后续的动作,这是成为⼀ 个EurekaServer的前提(springboot的拔插式实现方式)。
图中的2)关注EurekaServerAutoConfiguration
⽽在 com.netflix.eureka.cluster.PeerEurekaNodes#start⽅法中
回到主配置类中
回到主配置类中
图中3)导入@Import({EurekaServerInitializerConfiguration.class})
关注EurekaServerInitializerConfiguration
重点关注,进⼊org.springframework.cloud.netflix.eureka.server.EurekaServerBootstrap#conte xtInitialized
重点关注initEurekaServerContext()
研究⼀下上图中的syncUp⽅法
继续研究com.netflix.eureka.registry.AbstractInstanceRegistry#register(提供实例注册功能)
继续研究com.netflix.eureka.registry.PeerAwareInstanceRegistryImpl#openForTraffic
进⼊postInit()⽅法查看