springBoot不同module之間互相依賴的實(shí)現(xiàn)
在 Spring Boot 多模塊項(xiàng)目中,不同模塊之間的依賴通常是通過 Maven 或 Gradle 來管理的。以下是一個(gè)示例結(jié)構(gòu)和如何設(shè)置這些依賴的示例。
項(xiàng)目結(jié)構(gòu)
假設(shè)我們有一個(gè)多模塊的 Spring Boot 項(xiàng)目,結(jié)構(gòu)如下:
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 文件,可以定義特定于該模塊的依賴,并可以依賴其他模塊。
通過這種方式,每個(gè)模塊可以獨(dú)立開發(fā)、測試和運(yùn)行,但仍然可以共享公共配置和依賴,從而減少重復(fù)代碼和配置。
到此這篇關(guān)于springBoot不同module之間互相依賴的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)springBoot不同module互相依賴內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot項(xiàng)目啟動的時(shí)候,運(yùn)行main方法報(bào)錯(cuò)NoClassDefFoundError問題
這篇文章主要介紹了springboot項(xiàng)目啟動的時(shí)候,運(yùn)行main方法報(bào)錯(cuò)NoClassDefFoundError問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01解讀Spring配置文件中的property標(biāo)簽中的屬性
這篇文章主要介紹了Spring配置文件中的property標(biāo)簽中的屬性,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Java二叉搜索樹遍歷操作詳解【前序、中序、后序、層次、廣度優(yōu)先遍歷】
這篇文章主要介紹了Java二叉搜索樹遍歷操作,結(jié)合實(shí)例形式詳細(xì)分析了Java二叉搜索樹前序、中序、后序、層次、廣度優(yōu)先遍歷等相關(guān)原理與操作技巧,需要的朋友可以參考下2020-03-03詳解Java中Dijkstra(迪杰斯特拉)算法的圖解與實(shí)現(xiàn)
Dijkstra(迪杰斯特拉)算法是典型的單源最短路徑算法,用于計(jì)算一個(gè)節(jié)點(diǎn)到其他所有節(jié)點(diǎn)的最短路徑。本文將詳解該算法的圖解與實(shí)現(xiàn),需要的可以參考一下2022-05-05Java設(shè)置Excel數(shù)據(jù)驗(yàn)證的示例代碼
數(shù)據(jù)驗(yàn)證是Excel 2013版本中,數(shù)據(jù)功能組下面的一個(gè)功能。本文將通過Java程序代碼演示數(shù)據(jù)驗(yàn)證的設(shè)置方法及結(jié)果,感興趣的可以了解一下2022-05-05