美文网首页
SpringCloud学习(一) 项目搭建

SpringCloud学习(一) 项目搭建

作者: 疯狂的面条 | 来源:发表于2021-06-07 11:08 被阅读0次

    SpringCloud项目搭建



    今天开始学习SpringCloud(几天前就开始了, 只不过一直搭建失败),废了很多头发,终于勉强可以跑起来了。其中很多坑,记录一下,防止遗忘,另外也希望能帮到其他人,少走弯路。
    首先,本人用的IDE是idea edu没发现跟社区版的区别),安装了Spring Assistant插件,忽略idea对此插件的各种报错,开撸。

    1、创建root项目

    新建maven项目

    image.png
    起一个喜欢的名字,这里是pokia,然后选一个自己能找得到的位置,这里是桌面的pokia文件夹。GroupId一般公司域名逆序写就行,你若问我ouest是什么,自己百度去。
    image.png
    接着下一步,没配置maven的可以在此配置一下,这里不说这个了。直接点Finish,主项目就创建完成了。在这里等一会儿,它在初始化你刚创建的项目。
    初始化完成的项目长这样:
    image.png
    最后,把src文件夹删除,root项目中,我们不需要它。

    2、添加Eureka Server module

    若是大家有疑问,Eureka是什么?可以看看一位大神写的,通俗易懂,链接放这里了:
    SpringCloud入门
    新建一个module,创建方式与root项目差不多

    新建module
    起一个名字,这里parent自动变成pokia了,很好,不要改动它
    image.png
    一路下一步,最后添加了eureka-server的module,长这个样子
    eureka-server module

    3、添加Eureka Client module

    我添加的module叫这个名字,eureka-client-support,添加好后,项目长这个样子

    eureka-client-module


    现在,让我们来写代码吧

    4、配置Eureka Server

    打开eureka-server的pom.xml文件,添加依赖如图,别忘了点下按钮刷新下


    image.png

    在main文件夹下添加resources文件夹,如图直接双击就可以


    添加resources文件夹
    然后在resources文件夹中添加application.yml配置文件,并添加如下配置
    server:
      port: 8700
    
    eureka:
      client:
        service-url:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka
        register-with-eureka: false
        fetch-registry: false
      instance:
        hostname: localhost
    
    spring:
      application:
        name: eureka-server
    

    现在,删除原来的App.java,并新增一个有着更好的名字的java类,如下

    @SpringBootApplication
    @EnableEurekaServer
    public class EurekaServerApplication {
        public static void main(String[] args) {
            SpringApplication.run(EurekaServerApplication.class, args);
        }
    }
    

    eureka-server到这里先这样了,接下来完善一下client

    5、配置Eureka Client

    同server一样,打开eureka-client-support的pom.xml文件,添加依赖如下

        <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
          <version>3.0.2</version>
        </dependency>
    

    刷新,纳尼?为什么External Libraries里面这么多重复的jar包,只是版本号不一样而已。
    百度无果后,用脑子想了想,两个依赖的版本不一致,当时都选择了最新的版本。好的,我们把eureka-server的版本改为3.0.2,瞬间清净了。
    同样创建resources,添加application.yml,然后添加如下内容

    server:
      port: 8701
    
    eureka:
      client:
        service-url:
          defaultZone: http://${eureka.instance.hostname}:8700/eureka
      instance:
        hostname: localhost
    
    spring:
      application:
        name: eureka-client-support
    

    换一个java类,添加如下代码

    @SpringBootApplication
    @EnableDiscoveryClient
    public class EurekaClientSupportApplication {
        public static void main(String[] args) {
            SpringApplication.run(EurekaClientSupportApplication.class,args);
        }
    }
    

    6、测试一下

    先把server跑起来,再跑client,然后打开localhost:8700...
    等等,server没跑起来,一大堆错误,通过百度,发现是fastjson的版本与springboot的版本不匹配导致,springboot既然用了最新的,fastjson也必须用最新的,2.12.3解决了。再跑,还报错,gson2.1??不知道为啥gson是用了本地的maven库,

    The class hierarchy was loaded from the following locations:
    
        com.google.gson.GsonBuilder: file:/Users/yourname/.m2/repository/com/google/code/gson/gson/2.1/gson-2.1.jar
    

    果断先把本地的这个2.1文件夹删掉
    呼,终于成功了。
    接下来再把client抱错时打印的本地jar都删除,再启动,client也成功了
    访问一下locathost:8700,看看是不是有了注册进来的client。

    最后附上demo地址 (推荐用gradle,maven版本有时会有一些问题,,)
    gradle版本
    maven版本

    相关文章

      网友评论

          本文标题:SpringCloud学习(一) 项目搭建

          本文链接:https://www.haomeiwen.com/subject/yjhleltx.html