时间的法外狂徒

导航

@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

posted on 2020-05-07 22:12  抄手砚  阅读(7698)  评论(0编辑  收藏  举报