@EnableEurekaServer 注解无法引入问题

可能原因

大致有两个原因:

  1. pom 文件里没有配置相关依赖.
  2. Spring Boot 与 Spring Cloud 的支持版本不一致导致的.

解决

配置相关依赖

  • 这个注解一般用在注册中心, 只要引入以下依赖即可:

    <properties>
        <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>
    

解决 Spring Boot 版本和 Spring Cloud 版本不一致问题

上一步引入 eureka 启动依赖后, 还有可能会出现代码中 @EnableEurekaServer 注解无法引入的问题, Spring Cloud 版本和 Spring Boot 版本不一致会导致这个问题, 值得注意的是, Spring Cloud 代号的不同后缀也会出现版本不一致. 版本对应关系很重要, 因为版本不对应会出现很多意想不到的问题, 所有要准守这个规则, 不然会走很多弯路. 具体的版本对应可以到这里查: https://spring.io/projects/spring-cloud

版本对应关系

  • 大版本对应:
Spring CloudBoot Boot
Angle版本兼容 Spring Boot 1.2.x
Brixton 版本兼容 Spring Boot 1.3.x, 也兼容Spring Boot 1.4.x
Camden 版本兼容 Spring Boot 1.4.x, 也兼容Spring Boot 1.5.x
Dalston 版本、Edgware 版本兼容 Spring Boot 1.5.x, 不兼容Spring Boot 2.0.x
Finchley 版本兼容 Spring Boot 2.0.x, 不兼容Spring Boot 1.5.x
Greenwich 版本兼容 Spring Boot 2.1.x
  • 小版本对应
Spring CloudBoot Boot
Dalston.RC11.5.2.RELEASE
Edgware.RELEASE1.5.9.RELEASE
Finchley.BUILD-SNAPSHOT2.0.2.RELEASE

  • Cloud 版本后缀说明
版本后缀说明
BUILD-XXX开发版开发团队内部使用,不是很稳定
GA稳定版相比于开发版,基本上可以使用了
PRE(M1、M2)里程碑版主要是修复了一些BUG的版本,一个GA后通常有多个里程碑版
RC候选发布版该阶段的软件类似于最终版的一个发行观察期,基本只修复比较严重的BUG
SR正式发布版正式发行版本
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐