这一节开始,我们将通过代码逐步解决我们上一节中关于分布式和集群的几个问题!实际的编码会让我们对SpringCloud、微服务、分布式、集群了解的更深刻。
一、父子项目
接下来就要开始做 springcloud 项目了。 springcloud 比较特别,它由多个微服务组成, 所谓的微服务,就是 springboot,。
所以可以说 springcloud 由多个 springboot 项目组成, 而这些 springboot 之间又是围绕一个共同目的而存在的。
所以,为了便于组织这些 springboot 项目,我们会采用 maven 父子-聚合 项目的方式来开发。下面 我们来看一下如何使用IDEA创建maven父子聚合项目。
通过 maven 可以创建父子-聚合项目。 所谓的父子项目,即有一个父项目,有多个子项目。
这些子项目,在业务逻辑上,都归纳在这个父项目下,并且一般来说,都会有重复的jar包共享。
所以常用的做法会把重复的 jar 包都放在父项目下进行依赖,那么子项目就无需再去依赖这些重复的 jar 包了。
1、新建一个父maven项目
这里我们给它命名位父maven项目。
2、修改pom文件
idea 自动生成的 pom.xml 有一大堆东西,很多都用不着。 修改为如下的内容。
2.1. 默认是 jar, 修改为pom。 这样才可以作为父项目存在。
<packaging>pom</packaging>
2.2. 增加 hutool jar 和 junit 包的依赖,用于后来子项目里观察对其的调用。
pom文件代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<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>
<groupId>com.topmap</groupId>
<artifactId>parentMavenProject</artifactId>
<version>1.0-SNAPSHOT</version>
<name>parentMavenProject</name>
<description>parentMavenProject</description>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.3.1</version>
</dependency>
</dependencies>
</project>
3、创建一个子项目
所谓的子项目,其实是maven module.
右键点击 parentMavenProject->New->Module.
这样我们就在父maven项目下面新建了子maven项目。
子项目的pom文件中多了一个<parent>,这是对父项目的依赖。
父maven项目多了一个<modules>,这表示对子项目的关联。
下面我们来测试一下子项目是否已经跟父项目取得关联(这里在子项目中使用父项目依赖的jar包进行测试)<