使用Idea创建一个父子SpringBoot项目
一、概述
在设计微服务的时候,每个服务都是单独的一个应用,并且可以单独运行。一个大项目中可能会有N个微服务。此时如果不集中管理ide就会打开多个项目,每个项目都是一个单独的窗口,切换起来异常麻烦。其就相当于打开了多个不相关的项目。那么有没有办法可以让这些同一个项目的微服务集中管理呢。答案是肯定的,下面展示如何去做
二、具体步骤
1.先随便创建一个SpringBoot项目
2.删除项目中的src文件夹
3.在项目上用鼠标右键,新建model
4.多创建几个model,创建之后的效果
5.此时根目录中的pom.xml就会有你添加的各种model的配置及描述
下面贴出完整的根目录的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.tony.micro</groupId> <artifactId>tony-micro</artifactId> <version>1.0-SNAPSHOT</version><!--配置项目的版本--> <packaging>pom</packaging> <!--项目中以来的Module--> <modules> <module>gateway-service</module> <module>gateway-service</module> <module>user-service</module> <module>basic-service</module> <module>common</module> </modules> <properties> <!--指定JDK的版本号--> <java.version>1.8</java.version> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <!--根模块继承了SpringBoot,子模块也跟着继承了SpringBoot--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.12.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <!--版本控制--> <dependencyManagement> <dependencies> <dependency> <groupId>com.tony.common</groupId> <artifactId>common</artifactId> <version>${version}</version> </dependency> <dependency> <groupId>com.tony.basic</groupId> <artifactId>basic-service</artifactId> <version>${version}</version> </dependency> <dependency> <groupId>com.tony.user</groupId> <artifactId>user-service</artifactId> <version>${version}</version> </dependency> <dependency> <groupId>com.tony.gateway</groupId> <artifactId>gateway-service</artifactId> <version>${version}</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <!--快速生成getter和setter--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <!--日志--> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> <!--json--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.67_noneautotype2</version> </dependency> <!--测试--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- 注册中心 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.9.RELEASE</version> </dependency> <!-- 配置中心 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2.2.9.RELEASE</version> </dependency> <!-- 服务间远程调用--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> <version>2.2.9.RELEASE</version> </dependency> <!--swagger--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
6.在子模块中配置父模块,每个模块重复配置这个
<parent>
<groupId>com.tony.micro</groupId>
<artifactId>tony-micro</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
7.如果项目中有一个基础模块,而这个基础模块基本每个微服务都需要,则则可以在微服务模块中进行引入
<!--添加对Common模块的依赖--> <dependency> <groupId>com.tony.common</groupId> <artifactId>common</artifactId> </dependency>
8.大致就这么多了,其实到目前位置也是够用了