前言
公司的项目基于springcloud,来到公司两个月里,虽然已经熟悉了基本架构,但只有自己亲手搭建,才能更加深入的了解。今天开始,尽量抽出闲暇时间,搭建一个基于springcloud的小型项目。
一.maven父子依赖
为啥要建立父子依赖?
1.分布式项目采用的是多模块的开发,我们构建项目时不可能一个个构建,最简单的做法就是使用聚合,一次构建所有模块。
2.对于多模块,若每个模块需要导入相同依赖,一个个添加太过繁琐,而最简单的做法就是继承,去掉不必要的重复添加操作。
3.所有相同的依赖,必须统一版本,子模块全部跟随父依赖统一版本号。
二.搭建项目
首先创建maven父工程
创建完之后的目录列表:
目录中的.imp结尾的文件是项目的相关配置,如果你是强迫症患者,俺们可以根据以下步骤把它隐藏掉(可忽略此步骤)
修改pom.xml文件
以下文件是修改后的,并对位置做了一些调整,其中包含:
1.springboot启动的相关依赖
2.springcloud管理依赖
3.模块管理,这里添加了一个子模块springcloud注册中心:center。
<?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.simpleleaf</groupId>
<artifactId>springcloud-demo</artifactId>
<version>0.0.1</version>
<name>springcloud-demo</name>
<description>Demo project for Spring Boot</description>
<!--父依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
<relativePath/>
</parent>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<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>
<!--模块管理-->
<modules>
<module>center</module>
</modules>
</project>
创建子模块center
新建model,命名center,。创建完后,删除不需要的文件,目录结构如下:
修改pom.xml
<?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.simpleleaf</groupId>
<artifactId>center</artifactId>
<version>0.0.1</version>
<packaging>war</packaging>
<name>center</name>
<description>Demo project for Spring Boot</description>
<!--父依赖-->
<parent>
<groupId>com.simpleleaf</groupId>
<artifactId>springcloud-demo</artifactId>
<version>0.0.1</version>
<relativePath>./../</relativePath>
</parent>
<!--eureka服务-->
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
</project>
完成上述操作,可以看到maven下导入jar包:
搭建好父子关系依赖后,就正式开始springcloude学习了。