0
点赞
收藏
分享

微信扫一扫

springCloud-netflix-eureka 源码解析和相关优化

版本:

'springCloudVersion', "Hoxton.SR4"
'org.springframework.boot' version '2.3.0.RELEASE'

源码解析:

@EnableEurekaServer--做了什么事

点进源码内容如下:

这里面我们只需要关注@Import(EurekaServerMarkerConfiguration.class)

发现class EurekaServerMarkerConfiguration 几乎什么都没有做只是实例化一个Marker的bean

Marker是什么,我们暂时可以理解成一个eureka-server的标记:

因为springboot的启动时默认扫描启动类同目录下,所以在eureka-server中指定了spring.factories文件,用来记录项目包外需要注册的bean类名,或者说注册项目包外的bean

 spring.factories文件内容:

 继续看 EurekaServerAutoConfiguration 中的内容

 EurekaServerAutoConfiguration配置类中我们暂时只需要关注两个地方:

.@ConditionalOnBean  和 变量EUREKA_PACKAGES

@ConditionalOnBean(EurekaServerMarkerConfiguration.Marker.class)含义:spring容器中存在指定class的示例对象时,对应的配置才生效,也就是我们之前在@EnableEurekaServer中看到的Marker内部类,容器中存在Marker实例eureka server的配置才会生效(只有满足该条件springboot才会进一步加载eureka server相关的配置)

不了解@ConditionalOnBean和个性加载的可以看下面的图片作为简单的了解

变量EUREKA_PACKAGES:指定了springboot需要扫描的Eureka服务器所需资源的包列表

所以从以上内容看我们在使用时只需要两步就可以成功的启动一个eureka server服务

1.引入 org.springframework.cloud:spring-cloud-starter-netflix-eureka-server 依赖

2.在启动类上添加注解:@EnableEurekaServer

-----------------------------启动原理 结束-----------------------------------------------未完待续--后续会添加优化和更深层次源码解析

举报

相关推荐

0 条评论