在spring cloud系列章节中,本来已经写了几个章节了,但是自己看起来有些东西写得比较杂,所以重构了一下springcloud的章节内容,新写了本章节,先教大家在工作中如何搭建一个多模块的springcloud项目。

本章及后面章节,我们使用的开发环境是 spring tool suite (sts)  + maven (当然你也可以使用IDEA + Gradle,目前使用的公司也很多)。

一、新建一个父maven project模块

File->new->other->maven->maven project

记得勾选红框,我们仅仅只是需要该项目的pom.xml文件

如果生成后,有src文件,我们删除该文件,只保留pom.xml文件

修改pom.xml文件内容

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent> <groupId>com.haly</groupId>
<artifactId>springcloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging> <name>springcloud</name>
<url>http://maven.apache.org</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies> <dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

注意: 很多同学在搭建项目的过程中,引入依赖时,pom文件总是报错,这一般是springboot和springcloud的版本不一致造成。

这个系列所有章节,我们使用的版本为    springboot :2.1.4.RELEASE        springcloud:Greenwich.SR1

我们新建这个父工程后,发现它其实只有一个pom文件,没有什么业务功能,但是工作中我们都会新建一个这样的项目目录,它的作用如下

1. 工作中,我们整个项目的名称就是这个maven项目的名称,在svn中拉取项目下,只要拉这个主工程的分支就行了。

2. 它的pom文件会定义为父pom,后续的module工程可以继承该pom,所以很多module工程共用的配置,都可以放到这里。

二、新建一个springcloud-eureka-server子模块

选择主项目springcloud,右键->Maven->new maven module project

生成项目目录结构如下:

注意:有些同学新建子项目完成后,项目的展示都是并排着,没有展示出父子关系,需要调整一个展示形式,才会出现上面的项目结构。

点击上图标红的地方 -> projects Presentation - > Hierarchical

如果生成的springcloud-eureka-server模块没有resources目录

springcloud-eureka-server上右键点击项目-> new->Source Folder

三、新建一个springcloud-eureka-client子模块

参考新建springcloud-eureka-server模块的步骤,新增一个springcloud-eureka-client模块

生成的项目结构如下:

这时,我们去父项目springcloud中打开pom.xml文件,会发现自动增加了新建子模块的引入

<modules>
   <module>springcloud-eureka-server</module>
   <module>springcloud-eureka-client</module>
  </modules>

四、总结:

通过上面的步骤,我们已经搭建好了一个多模块的springcloud项目,但是这仅仅只是一个项目架构,如果需要运行起来,我们还需要做如下三步

1. 修改子模块的pom.xml文件,增加对应模块功能需要的依赖包

2. 在src/main/resources目录下,新增application.properties文件,配置项目的配置项

3. 在src/main/java目录的com.haly包下,新增对应模块的启动类

如何运行多模块springcloud项目,请看下一章节:一起来学Spring Cloud | 第二章:服务注册和发现组件 (Eureka)

一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目的更多相关文章

  1. 一起来学spring Cloud | 第一章:spring Cloud 与Spring Boot

    目前大家都在说微服务,其实微服务不是一个名字,是一个架构的概念,大家现在使用的基于RPC框架(dubbo.thrift等)架构其实也能算作一种微服务架构. 目前越来越多的公司开始使用微服务架构,所以在 ...

  2. 一起来学Spring Cloud | 第二章:服务注册和发现组件 (Eureka)

    本篇文章,很浅显的一步步讲解如何搭建一个能运行的springcloud项目(带所有操作截图).相信!看完本篇之后,你会觉得springcloud搭建如此简单~~~~ 一. Eureka简介: 1.1  ...

  3. 一起来学Spring Cloud | 第四章:服务消费者 ( Feign )

    上一章节,讲解了SpringCloud如何通过RestTemplate+Ribbon去负载均衡消费服务,本章主要讲述如何通过Feign去消费服务. 一.Feign 简介: Feign是一个便利的res ...

  4. 一起来学Spring Cloud | 第六章:服务网关 ( Zuul)

    本章节,我们讲解springcloud重要组件:微服务网关Zuul.如果有同学从第一章看到本章的,会发现我们已经讲解了大部分微服务常用的基本组件. 已经讲解过的: 一起来学Spring Cloud | ...

  5. 一起来学Spring Cloud | 第三章:服务消费者 (负载均衡Ribbon)

    一.负载均衡的简介: 负载均衡是高可用架构的一个关键组件,主要用来提高性能和可用性,通过负载均衡将流量分发到多个服务器,多服务器能够消除单个服务器的故障,减轻单个服务器的访问压力. 1.服务端负载均衡 ...

  6. 一起来学Spring Cloud | 第五章:熔断器 ( Hystrix)

    在微服务项目中,一个系统可以分割成很多个不同的服务模块,不同模块之间我们通常需要进行相互调用.springcloud中可以使用RestTemplate+Ribbon和Feign来调用(工作中基本都是使 ...

  7. 一起来学Spring Cloud | 第七章:分布式配置中心(Spring Cloud Config)

    上一章节,我们讲解了服务网关zuul,本章节我们从git和本地两种存储配置信息的方式来讲解springcloud的分布式配置中心-Spring Cloud Config. 一.Spring Cloud ...

  8. SpringBoot | 第一章:第一个SpringBoot应用

    springboot简单介绍 概述 SpringBoot的核心功能 优缺点 优点 缺点 工程搭建 创建项目 项目结构 pom依赖 主入口 编写controller 启动应用 总结 老生常谈 sprin ...

  9. 一起来学Spring Cloud | 第八章:消息总线(Spring Cloud Bus)

    上一章节,我们讲解了分布式配置中心spring cloud config,我们把配置项存放在git或者本地,当我们修改配置时,需要重新启动服务才能生效.但是在生产上,一个服务部署了多台机器,重新启动比 ...

随机推荐

  1. CSS之BFC详解

    What:了解该知识点的概念,本质以及有关牵扯到的相关知识概念 BFC这个东西说常见的话你可能不觉得,但是你肯定会常用,也许你在用的时候也没想到BFC这东西.网上也有很多写这些东西的文章,但是自己写一 ...

  2. java多线程有几种实现方法,都是什么?

    转自:http://www.cnblogs.com/liujichang/p/3150387.html 多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 同步的实现方法有两种, ...

  3. SQL查询 若为空显示默认值

    COALESCE(a.end_,now()) SELECT COALESCE(NULL,NULL,3,4,5) FROM

  4. C#识别图中二维码

    1.在NuGet中添加 ZXing.Net 2.实例代码 /// <summary> /// 识别图中二维码 /// </summary> /// <param name ...

  5. HBase HA + Hadoop HA 搭建

    HBase 使用的是 1.2.9 的版本.  Hadoop HA 的搭建见我的另外一篇:Hadoop 2.7.3 HA 搭建及遇到的一些问题 以下目录均为 HBase 解压后的目录. 1. 修改 co ...

  6. 对不起,给pandas配表情包太难了,pandas你该这么学,No.6

    如果图片无法观看,请移步 https://blog.csdn.net/hihell 标题起的长,才能引起你的注意呢 昨天,有个家伙,留言给我说 嫌我不好好写博客 就知道给文章配表情包 在这里,郑重的回 ...

  7. 洛谷 P1439 【模板】最长公共子序列LCS 解题报告

    题目传送门 是一道十分经典的LCS问题 很容易想到  的一般算法:主题代码如下: for (int i = 1; i <= n; i++) for (int j = 1; j <= n; ...

  8. 消息中间件 | 消息协议 | AMQP -- 《分布式 消息中间件实践》笔记

    04年,AMQP开放标准被开发 06年,AMQP规范被发布   基本概念     Message:与平台无相关的数据.     Publisher:向交换器发布消息的客户端应用程序     Excha ...

  9. POJ1021 2D-Nim

    题目来源:http://poj.org/problem?id=1021 题目大意: 有一种在棋盘上玩的游戏,每一步,一个玩家可以从棋盘上拿走连续行或列的棋子.谁拿到最后一颗棋子就胜利.如下图所示的棋盘 ...

  10. Chapter13

    package scala /** * Created by EX-CHENZECHAO001 on 2018-04-04. */class Chapter13 { // 13 集合 // 所有的集合 ...