@EnableDiscoveryClient和@EnableEurekaClient的区别

Posted whalesea

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@EnableDiscoveryClient和@EnableEurekaClient的区别相关的知识,希望对你有一定的参考价值。

简单区分下,他们在功能上是一致的:写在启动类的上,开启服务注册发现功能。

不同的是,当注册中心不一样时,像:eureka、consul、zookeeper,使用是也有了区别。

EnableDiscoveryClient注解在common包中,通过项目的classpath来决定使用哪种实现,而EnableEurekaClient注解在netflix包中,只会使用eureka这种实现方式;

所以,使用EnableDiscoverClient,对任何注册中心都适用。而EnableEurekaClient是为eureka服务的。

springcloud的Dalston或更早期的版本EnableEurekaClient是包含EnableDiscoverClient注解的,这种情况使用什么已经没区别了。


@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@EnableDiscoveryClient
public @interface EnableEurekaClient {

}

但是在之后版本,如Greenwich版本中是这样的:

package org.springframework.cloud.netflix.eureka;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface EnableEurekaClient {
}

官网推荐使用:EnableDiscoveryClient

想详细了解可以看这篇博客:https://blog.csdn.net/boling_cavalry/article/details/82668480

以上是关于@EnableDiscoveryClient和@EnableEurekaClient的区别的主要内容,如果未能解决你的问题,请参考以下文章

springcloud中@EnableDiscoveryClient与@EnableEurekaClient的区别

@EnableDiscoveryClient和@EnableEurekaClient的区别

@EnableDiscoveryClient和@EnableEurekaClient的区别

EnableDiscoveryClient与EnableEurekaClient的作用和区别

:EnableDiscoveryClient与EnableEurekaClient的区别(Edgware版本)

:EnableDiscoveryClient与EnableEurekaClient的区别(Edgware版本)