spring cloud 的快速搭建

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

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

一、新建一个父maven project模块

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

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

spring cloud 的快速搭建

spring cloud 的快速搭建

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

spring cloud 的快速搭建

修改pom.xml文件内容

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

<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

spring cloud 的快速搭建

spring cloud 的快速搭建

spring cloud 的快速搭建

生成项目目录结构如下:

spring cloud 的快速搭建

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

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

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

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

spring cloud 的快速搭建

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

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

生成的项目结构如下:

spring cloud 的快速搭建

这时,我们去父项目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包下,新增对应模块的启动类