EnableDiscoveryClient与EnableEurekaClient

时间:2024-11-16 08:34:27
今天看EnableEurekaClient 看了半天,然后搜索这个注解的使用者,根本没找到.结果在网上看别人的用法,对比了下注解实现的不一样,截图下来在这里插入图片描述
在这里插入图片描述
第一幅图是v1.2.2分支的代码.如上图,而第二幅图是master分支的代码.这个修改是2017年9月分修改的,不知道为什么.commit上面也没说明具体原因
在这里插入图片描述看不了EnableEurekaClient实现,就来看EnableDiscoveryClient的实现吧.之前EnableEurekaClient的实现也是通过EnableDiscoveryClient来实现的.
在看这个问题之前先来看一下基本用法在这里插入图片描述
在这里先关注SpringBootApplication注解的定义在这里插入图片描述这里用到了EnableAutoConfiguration注解.看其定义在这里插入图片描述这里引用了AutoConfigurea* 这个bean,进去仔细看就是解析文件.
下面看eureka.client文件下面这个文件的定义在这里插入图片描述好了到这里就开始进入EnableDiscoveryClient注解了.EurekaDiscoveryClientConfiguration这个类是关键,这里开启了Marker bean的注册.为后面其它条件注入的client提供了支持.
现在来看看EnableDiscoveryClient注解的定义在这里插入图片描述
这里import了EnableDiscoveryClientImportSelector操作.这个会在spring启动时候,自动处理注解的时候调用.看其主要实现在这里插入图片描述这里会注册AutoServiceRegistrationConfiguration这样一个bean.其描述如下:在这里插入图片描述
这里也就是实现了一个AutoServiceRegistrationProperties这个类的bean注册.
以上处理都是为EurekaClientAutoConfiguration这个类作准备的,这个是进行服务注册及处理的地方了.具体细节大家自己去看在这里插入图片描述以上部分是我对EnableDiscoveryClient的理解,如有错误欢迎大家指正.