Spring Cloud微服务项目注意事项

  1. SpringCloud是基于Spring Boot的,如果想使用Spring Cloud中的组件,那么必然要先创建一个Spring Boot项目,然后再引入Spring Cloud的依赖。此处问题来了,我使用的Spring Boot版本如果定下来了,那么我的Spring Cloud版本是什么?
    下图是Spring官网给的,对应的版本。一定要对应,不然可能出现很多错误,不好排查。
    在这里插入图片描述
  2. @EnableEurekaServer @EnableDiscoveryClient
    找不到,请检查Spring Cloud和Spring Boot版本是否兼容。
  3. @EnableFeignClients不能引入
    引入不了@EnableFeignClients注解,因为到了Spring Boot 2.0这玩意已经被移除了,你不加入相应的maven依赖,是用不了的,当然这里很好解决,但要注意了,这个依赖有2个,千万别搞混了。本人在这入过坑。
<!--远程服务调用,springboot2.0版本以上,需要导入下面的包才能使用 @EnableFeignClients 注解-->

注释的这个依赖别用,这个虽然不报错,也好像可以使用,但实际是有bug的,会导致无法注入bean
<!--<dependency>-->
    <!--<groupId>org.springframework.cloud</groupId>-->
    <!--<artifactId>spring-cloud-openfeign-core</artifactId>-->
<!--</dependency>-->

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
  1. Erureka Server的maven坐标artifactId 名字问题
    Spring Boot 1.5版本使用spring-cloud-starter-eureka-server还是没问题的。2.0以上建议使用 spring-cloud-starter-netflix-eureka-server。
    在这里插入图片描述
    以下是我写的Spring Cloud Eureka微服务Demo。可以看看里面的pom文件。其中需要注意的是Spring Cloud的依赖以如下方式加入。
<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR7</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

所以再添加Spring Cloud的其他组件时,不用指定版本。

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

猜你喜欢

转载自blog.csdn.net/sinat_32336967/article/details/107838428
今日推荐