0


springBoot不同module之间互相依赖

在 Spring Boot 多模块项目中,不同模块之间的依赖通常是通过 Maven 或 Gradle 来管理的。以下是一个示例结构和如何设置这些依赖的示例。

项目结构

假设我们有一个多模块的 Spring Boot 项目,结构如下:

  1. my-springboot-project
  2. ├── pom.xml // 父 POM 文件
  3. ├── module-a
  4. ├── pom.xml // Module A 的 POM 文件
  5. └── src
  6. └── main
  7. └── java
  8. └── com.example.modulea
  9. └── ModuleAApplication.java
  10. ├── module-b
  11. ├── pom.xml // Module B 的 POM 文件
  12. └── src
  13. └── main
  14. └── java
  15. └── com.example.moduleb
  16. └── ModuleBApplication.java
  17. └── module-c
  18. ├── pom.xml // Module C 的 POM 文件
  19. └── src
  20. └── main
  21. └── java
  22. └── com.example.modulec
  23. └── ModuleCApplication.java

父 POM 文件(my-springboot-project/pom.xml)

在父 POM 文件中,定义所有子模块和共有的依赖。

  1. <project xmlns="http://maven.apache.org/POM/4.0.0"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <groupId>com.example</groupId>
  6. <artifactId>my-springboot-project</artifactId>
  7. <version>1.0.0</version>
  8. <packaging>pom</packaging>
  9. <modules>
  10. <module>module-a</module>
  11. <module>module-b</module>
  12. <module>module-c</module>
  13. </modules>
  14. <dependencyManagement>
  15. <dependencies>
  16. <dependency>
  17. <groupId>org.springframework.boot</groupId>
  18. <artifactId>spring-boot-dependencies</artifactId>
  19. <version>2.7.0</version>
  20. <type>pom</type>
  21. <scope>import</scope>
  22. </dependency>
  23. <!-- 其他共有的依赖 -->
  24. </dependencies>
  25. </dependencyManagement>
  26. <build>
  27. <pluginManagement>
  28. <plugins>
  29. <plugin>
  30. <groupId>org.springframework.boot</groupId>
  31. <artifactId>spring-boot-maven-plugin</artifactId>
  32. </plugin>
  33. </plugins>
  34. </pluginManagement>
  35. </build>
  36. </project>

模块 A 的 POM 文件(module-a/pom.xml)

  1. <project xmlns="http://maven.apache.org/POM/4.0.0"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>com.example</groupId>
  7. <artifactId>my-springboot-project</artifactId>
  8. <version>1.0.0</version>
  9. </parent>
  10. <artifactId>module-a</artifactId>
  11. <dependencies>
  12. <!-- 依赖于 Spring Boot 和其他公共库 -->
  13. <dependency>
  14. <groupId>org.springframework.boot</groupId>
  15. <artifactId>spring-boot-starter</artifactId>
  16. </dependency>
  17. </dependencies>
  18. </project>

模块 B 的 POM 文件(module-b/pom.xml)

模块 B 依赖于模块 A,因此在它的 POM 文件中要添加对模块 A 的依赖。

  1. <project xmlns="http://maven.apache.org/POM/4.0.0"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://www.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>com.example</groupId>
  7. <artifactId>my-springboot-project</artifactId>
  8. <version>1.0.0</version>
  9. </parent>
  10. <artifactId>module-b</artifactId>
  11. <dependencies>
  12. <dependency>
  13. <groupId>com.example</groupId>
  14. <artifactId>module-a</artifactId>
  15. <version>1.0.0</version>
  16. </dependency>
  17. <dependency>
  18. <groupId>org.springframework.boot</groupId>
  19. <artifactId>spring-boot-starter</artifactId>
  20. </dependency>
  21. </dependencies>
  22. </project>

模块 C 的 POM 文件(module-c/pom.xml)

模块 C 也可以依赖于其他模块,如模块 A 和 B。

  1. <project xmlns="http://maven.apache.org/POM/4.0.0"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://www.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>com.example</groupId>
  7. <artifactId>my-springboot-project</artifactId>
  8. <version>1.0.0</version>
  9. </parent>
  10. <artifactId>module-c</artifactId>
  11. <dependencies>
  12. <dependency>
  13. <groupId>com.example</groupId>
  14. <artifactId>module-a</artifactId>
  15. <version>1.0.0</version>
  16. </dependency>
  17. <dependency>
  18. <groupId>com.example</groupId>
  19. <artifactId>module-b</artifactId>
  20. <version>1.0.0</version>
  21. </dependency>
  22. <dependency>
  23. <groupId>org.springframework.boot</groupId>
  24. <artifactId>spring-boot-starter</artifactId>
  25. </dependency>
  26. </dependencies>
  27. </project>

依赖解析

  • 父 POM 文件:定义了所有模块的公共依赖和配置。
  • 子模块 POM 文件:继承自父 POM 文件,可以定义特定于该模块的依赖,并可以依赖其他模块。

通过这种方式,每个模块可以独立开发、测试和运行,但仍然可以共享公共配置和依赖,从而减少重复代码和配置。

标签: spring boot 后端 java

本文转载自: https://blog.csdn.net/qq_35469691/article/details/139812461
版权归原作者 陈大头铃儿响叮当 所有, 如有侵权,请联系我们删除。

“springBoot不同module之间互相依赖”的评论:

还没有评论