在使用spring cloud的时候一般使用@EnableEurekaServer
首先我们先来了解一下@EnableEurekaServer
我们点击这个注解发现,里面并没有什么代码只有几个注解
我们再次点击EurekaServerMarkerConfiguration.class,会发现里面只是注册了一个Bean(Mark.class)
其实这个就是启动eureka的开关,真正处理eureka启动的bean是EurekaServerAutoConfiguration这个类,打开代码我们会发现里面有一个@ConditionalOnBean(EurekaServerMarkerConfiguration.Marker.class),这个就是spring boot的条件加载,有了之前的Mark类,这样这个类就会启作用了,eureka就启动了
这边开始初始化eureka的服务端需要使用到的一些bean,在EurekaServerInitializerConfiguration这个类中通过使用spring来管理生命周期,在bean初始化完后执行start方法进行eureka服务端数据的初始化
执行eurekaServerBootstrap.contextInitialized方法来进行上下文的初始化,让我们进入方法内部看看究竟
先初始化eureka服务的环境eureka.datacenter,eureka.environment等的数据
然后就是我们服务的关键了,那就是进行上下文的初始化,主要内容就是从平行节点拉取注册信息进行注册,
这样一来我们的eureka服务算是启动完了。