springBoot不同module之间互相依赖的实现
作者:陈大头铃儿响叮当
本文主要介绍了springBoot不同module之间互相依赖的实现,不同模块之间的依赖通常是通过Maven或Gradle来管理的,下面就来介绍一下如何实现,感兴趣的可以了解一下
在 Spring Boot 多模块项目中,不同模块之间的依赖通常是通过 Maven 或 Gradle 来管理的。以下是一个示例结构和如何设置这些依赖的示例。
项目结构
假设我们有一个多模块的 Spring Boot 项目,结构如下:
my-springboot-project │ ├── pom.xml // 父 POM 文件 ├── module-a │ ├── pom.xml // Module A 的 POM 文件 │ └── src │ └── main │ └── java │ └── com.example.modulea │ └── ModuleAApplication.java │ ├── module-b │ ├── pom.xml // Module B 的 POM 文件 │ └── src │ └── main │ └── java │ └── com.example.moduleb │ └── ModuleBApplication.java │ └── module-c ├── pom.xml // Module C 的 POM 文件 └── src └── main └── java └── com.example.modulec └── ModuleCApplication.java
父 POM 文件(my-springboot-project/pom.xml)
在父 POM 文件中,定义所有子模块和共有的依赖。
<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.example</groupId> <artifactId>my-springboot-project</artifactId> <version>1.0.0</version> <packaging>pom</packaging> <modules> <module>module-a</module> <module>module-b</module> <module>module-c</module> </modules> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.7.0</version> <type>pom</type> <scope>import</scope> </dependency> <!-- 其他共有的依赖 --> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </pluginManagement> </build> </project>
模块 A 的 POM 文件(module-a/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>com.example</groupId> <artifactId>my-springboot-project</artifactId> <version>1.0.0</version> </parent> <artifactId>module-a</artifactId> <dependencies> <!-- 依赖于 Spring Boot 和其他公共库 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> </dependencies> </project>
模块 B 的 POM 文件(module-b/pom.xml)
模块 B 依赖于模块 A,因此在它的 POM 文件中要添加对模块 A 的依赖。
<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://www.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.example</groupId> <artifactId>my-springboot-project</artifactId> <version>1.0.0</version> </parent> <artifactId>module-b</artifactId> <dependencies> <dependency> <groupId>com.example</groupId> <artifactId>module-a</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> </dependencies> </project>
模块 C 的 POM 文件(module-c/pom.xml)
模块 C 也可以依赖于其他模块,如模块 A 和 B。
<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://www.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.example</groupId> <artifactId>my-springboot-project</artifactId> <version>1.0.0</version> </parent> <artifactId>module-c</artifactId> <dependencies> <dependency> <groupId>com.example</groupId> <artifactId>module-a</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>com.example</groupId> <artifactId>module-b</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> </dependencies> </project>
依赖解析
- 父 POM 文件:定义了所有模块的公共依赖和配置。
- 子模块 POM 文件:继承自父 POM 文件,可以定义特定于该模块的依赖,并可以依赖其他模块。
通过这种方式,每个模块可以独立开发、测试和运行,但仍然可以共享公共配置和依赖,从而减少重复代码和配置。
到此这篇关于springBoot不同module之间互相依赖的实现的文章就介绍到这了,更多相关springBoot不同module互相依赖内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!