手把手教你搭建SpringCloud项目(一)图文详解

手把手教你搭建SpringCloud项目(一)图文详解上一篇文章我们了解了微服务 光了解了还不够 最主要的还是要动手实践 因为实践是检验真理的唯一标准 只有理论和实践都掌握了 才是真的学会了 我们知道微服务是有多个服务 将不同的业务放到不同的服务当中 然后各个服务之间相互调用 所以我们要新建一个总工程 父工程 来管理下边的其他微服务工程 全程使用 maven 项目进行搭建 和 springboot 搭建是一样的 下面我们开始搭建 项目搭建图 我们首先先构建父工程 这里使用的是 maven 项目进行构建 gav 填写 根据自己的习惯进行填写

Spring Cloud全集文章目录:

点击学习搭建SpringCloudAlibaba项目手把手教你搭建SpringCloud项目(十三 )集成Gateway新一代网关

十四、手把手教你搭建SpringCloud项目(十四 )集成Config分布式配置中心

十五、手把手教你搭建SpringCloud项目(十五)集成Bus消息总线

十六、手把手教你搭建SpringCloud项目(十六)集成Stream消息驱动

十七、手把手教你搭建SpringCloud项目(十七)集成Sleuth分布式链路跟踪

Spring Cloud 是什么?

Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,比如服务发现、服务网关、服务路由、链路追踪等。Spring Cloud 并不重复造轮子,而是将市面上开发得比较好的模块集成进去,进行封装,从而减少了各模块的开发成本。换句话说:Spring Cloud 提供了构建分布式系统所需的“全家桶”。

Spring Cloud 现状

目前,国内使用 Spring Cloud 技术的公司并不多见,不是因为 Spring Cloud 不好,主要原因有以下几点:

  1. Spring Cloud 中文文档较少,出现问题网上没有太多的解决方案。
  2. 国内创业型公司技术老大大多是阿里系员工,而阿里系多采用 Dubbo 来构建微服务架构。
  3. 大型公司基本都有自己的分布式解决方案,而中小型公司的架构很多用不上微服务,所以没有采用 Spring Cloud 的必要性。

但是,微服务架构是一个趋势,而 Spring Cloud 是微服务解决方案的佼佼者,这也是作者写本系列课程的意义所在。

Spring Cloud 优缺点

其主要优点有:

  1. 集大成者,Spring Cloud 包含了微服务架构的方方面面。
  2. 约定优于配置,基于注解,没有配置文件。
  3. 轻量级组件,Spring Cloud 整合的组件大多比较轻量级,且都是各自领域的佼佼者。
  4. 开发简便,Spring Cloud 对各个组件进行了大量的封装,从而简化了开发。
  5. 开发灵活,Spring Cloud 的组件都是解耦的,开发人员可以灵活按需选择组件。

它的缺点:

  1. 项目结构复杂,每一个组件或者每一个服务都需要创建一个项目。
  2. 部署门槛高,项目部署需要配合 Docker 等容器技术进行集群部署,而要想深入了解 Docker,学习成本高。

Spring Cloud 的优势是显而易见的。因此对于想研究微服务架构的同学来说,学习 Spring Cloud 是一个不错的选择。

 Spring Cloud 项目搭建 

温馨提示:要有一定的springboot的基础呦!

 上一篇文章我们了解了微服务,光了解了还不够,最主要的还是要动手实践,因为实践是检验真理的唯一标准,只有理论和实践都掌握了,才是真的学会了。我们知道微服务是有多个服务,将不同的业务放到不同的服务当中,然后各个服务之间相互调用。所以我们要新建一个总工程(父工程)来管理下边的其他微服务工程。全程使用maven项目进行搭建,和springboot搭建是一样的。下面我们开始搭建!

 项目搭建图:

手把手教你搭建SpringCloud项目(一)图文详解

我们首先先构建父工程,这里使用的是maven项目进行构建。

手把手教你搭建SpringCloud项目(一)图文详解

gav填写,根据自己的习惯进行填写,然后点击Next

手把手教你搭建SpringCloud项目(一)图文详解

出现如下界面,点击Finish,此时新建项目完成。

手把手教你搭建SpringCloud项目(一)图文详解

 
    
    
    
      4.0.0 
     
    
      com.study.springcloud 
     
    
      mcroservice 
     
     
    
      pom 
     
    
      1.0-SNAPSHOT 
     
     
     
       UTF-8 
      
     
       1.8 
      
     
       1.8 
      
     
       5.1.47 
      
     
       1.1.10 
      
     
       4.1.2 
      
     
       1.16.10 
      
     
       1.2.17 
      
     
     
     
      
       
       
       
         org.springframework.cloud 
        
       
         spring-cloud-dependencies 
        
       
         Greenwich.SR1 
        
       
         pom 
        
       
         import 
        
       
       
       
       
         org.springframework.boot 
        
       
         spring-boot-dependencies 
        
       
         2.1.4.RELEASE 
        
       
         pom 
        
       
         import 
        
       
       
       
       
         mysql 
        
       
         mysql-connector-java 
        
       
         ${mysql.version} 
        
       
       
       
         com.alibaba 
        
       
         druid 
        
       
         ${druid.version} 
        
       
       
       
       
         org.mybatis.spring.boot 
        
       
         mybatis-spring-boot-starter 
        
       
         1.3.2 
        
       
       
       
       
         junit 
        
       
         junit 
        
       
         4.12 
        
       
       
       
       
         org.projectlombok 
        
       
         lombok 
        
       
         1.18.8 
        
       
       
       
       
         log4j 
        
       
         log4j 
        
       
         ${log4j.vsrsion} 
        
       
       
       
         ch.qos.logback 
        
       
         logback-core 
        
       
         1.2.3 
        
       
      
     
    

因为我们父工程是不写业务的,其中我们可以将src文件夹删除,将一些没用的文件进行设置不显示或者删除。我们此时父工程就搭建完成了,就是这么简单。

接下来,我们就可以进行继续搭建其他的微服务工程了。我们首先搭建一个专门放我们实体类的服务,来让其他服务来调用。

选中我们的父工程点击New,在点击Module,如下图:

手把手教你搭建SpringCloud项目(一)图文详解

这里是跟见父工程一样。

手把手教你搭建SpringCloud项目(一)图文详解

填写我们的Module的项目名称。

手把手教你搭建SpringCloud项目(一)图文详解

注意下面这一步是Module name处用将我们项目名的-省略,因为实际项目中有更多的工程,我们为了方便看的更清楚,需要加-来进行分割!然后我们点击Finish。

手把手教你搭建SpringCloud项目(一)图文详解

此时我们的第一个微服务工程就建立完成了,接下来就是配置啦。我们首先配置POM.xml文件。这里我们引入了Hutool这个jar包,它是一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件:

  • 布隆过滤
  • 缓存
  • 克隆接口
  • 类型转换
  • 日期处理
  • 数据库ORM(基于ActiveRecord思想)
  • 基于DFA有限自动机的多个关键字查找
  • HTTP客户端
  • IO和文件
  • 有用的一些数据结构
  • 日志
  • 反射代理类的简化(AOP切面实现)
  • Setting(一种扩展Properties的配置文件)
  • System(JVM和系统信息等)
  • WatchService的封装(文件变动监控)
  • XXXUtil各种有用的工具类

用起来也别方便,使我们java开发中的神器。

 
    
    
     
     
       mcroservice 
      
     
       com.study.springcloud 
      
     
       1.0-SNAPSHOT 
      
     
    
      4.0.0 
     
    
      cloud-api-commons 
     
     
      
      
        org.springframework.boot 
       
      
        spring-boot-devtools 
       
      
        runtime 
       
      
        true 
       
      
      
      
        org.projectlombok 
       
      
        lombok 
       
      
        true 
       
      
      
      
      
        cn.hutool 
       
      
        hutool-all 
       
      
        5.1.0 
       
      
     
   

这是我们就可以在该服务中写的pojo类,我们这里以支付为例,所以我们先在数据中建议一张支付的表。sql语句如下

 CREATE TABLE `payment` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', `serial` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

我们为该表添加数据,sql语句如下:

insert into `payment`(`id`,`serial`) values (1,'百度'),(2,'alibaba'),(3,'京东'),(4,'头条');

建表和添加数据完成了,我们就新建对应的实体类。下图为项目结构图:

手把手教你搭建SpringCloud项目(一)图文详解

payment表对应的实体类。这里使用了lombok,上面的pom文件导入了依赖,但是需要安装lombok插件,不然会报错!如下图:

手把手教你搭建SpringCloud项目(一)图文详解

package com.buba.springcloud.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.io.Serializable; //网络通信 一定要实现序列化 //使用lombok 没有配置的童鞋要去百度查一下 jar我们导入了 需要在idea装一个插件就可以了 @Data @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true) public class Payment implements Serializable { private Long id; // 微服务 一个服务对应一个数据库,同一个信息可能存在不同的数据库 private String serial; } 

为了数据传输的方便,也为了前后端分离项目,我们将返回的数据进行封装,封装成一个实体类。

package com.buba.springcloud.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; @Data @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true) public class CommonResult 
   
     { private Integer code;//返回状态码 private String message;//返回是否调用成功 private T data; //返回的数据 public CommonResult(Integer code, String message) { this(code,message,null); } } 
   

我们实体类的服务主要存放实体类,也不写业务逻辑,我们也可以将src文件夹删除掉。此时我们就将总工程和提供实体类的微服务工程搭建成功了。因为实体类的服务工程需要其他的各个服务工程调用,所以要将实体类的服务进行打包放到公用的本地库中。

我们首先将该工程clean,确保当前工程的maven的配置是否成功。

手把手教你搭建SpringCloud项目(一)图文详解

出现如下界面说明当前工程的maven配置环境没有问题

手把手教你搭建SpringCloud项目(一)图文详解

那接下来我们就开始install打包放到本地库中。如下为成功界面:

手把手教你搭建SpringCloud项目(一)图文详解

此时我们可以看到我们总工程的pom.xml文件引入了cloud-api-commons,如下图:

手把手教你搭建SpringCloud项目(一)图文详解

我们下一篇文章将要搭建生产者和消费者的微服务工程啦。文章持续更新中,欢迎点赞关注!

手把手教你搭建SpringCloud项目(一)图文详解

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204033.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午9:10
下一篇 2026年3月19日 下午9:10


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号