更新時(shí)間:2021-12-29 10:50:29 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2483次
在本快速教程中,我們將展示 如何使用Spring Boot創(chuàng)建多模塊項(xiàng)目。
首先,我們將構(gòu)建一個(gè)不是應(yīng)用程序本身的庫 jar,然后我們將構(gòu)建一個(gè)使用我們的庫的應(yīng)用程序。
要設(shè)置我們的多模塊項(xiàng)目,讓我們 使用pom 打包 創(chuàng)建一個(gè)簡單的模塊, 以 在我們的 Maven 配置中聚合我們的庫和應(yīng)用程序模塊:
<groupId>com.baeldung</groupId>
<artifactId>parent-multi-module</artifactId>
<packaging>pom</packaging>
我們將在我們的項(xiàng)目中創(chuàng)建兩個(gè)目錄,將應(yīng)用程序模塊與庫jar模塊分開。
讓我們?cè)趐om.xml 中聲明我們的模塊:
<modules>
<module>library</module>
<module>application</module>
</modules>
對(duì)于我們的庫模塊,我們將使用jar包裝:
<groupId>com.baledung.example</groupId>
<artifactId>library</artifactId>
<packaging>jar</packaging>
由于我們想利用Spring Boot依賴管理,我們將使用 spring-boot-starter-parent 作為父項(xiàng)目,注意將<relativePath/> 設(shè)置為空值,以便 Maven 將解析父pom。來自存儲(chǔ)庫的xml:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath/>
</parent>
請(qǐng)注意,如果我們有自己的父項(xiàng)目,我們可以在pom.xml 的<dependencyManagement/>部分將依賴項(xiàng)管理作為物料清單 (BOM) 導(dǎo)入:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<type>pom</type>
<version>2.4.0</version>
<scope>import</scope>
</dependency>
</dependencies>
<dependencyManagement>
最后,初始依賴項(xiàng)將非常簡單:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
在這個(gè)模塊中, Spring Boot插件不是必需的,因?yàn)樗闹饕δ苁莿?chuàng)建一個(gè)可執(zhí)行文件über-jar,我們不需要也不需要庫。
之后,我們準(zhǔn)備開發(fā)將由庫提供的服務(wù)組件:
@Service
public class EvenOddService {
public String isEvenOrOdd(Integer number) {
return number % 2 == 0 ? "Even" : "Odd";
}
}
與我們的庫模塊一樣,我們的應(yīng)用程序模塊將使用 jar包裝:
<groupId>com.baeldung.example</groupId>
<artifactId>application</artifactId>
<packaging>jar</packaging>
我們將像以前一樣利用Spring Boot依賴管理:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath/>
</parent>
除了 Spring Boot starter 依賴項(xiàng)之外,我們還將包含在上一節(jié)中創(chuàng)建的庫jar:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.baeldung.example</groupId>
<artifactId>library</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
最后,我們將使用Spring Boot插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
在這個(gè)地方使用上面提到的插件有幾個(gè)方便的原因。
首先,它提供了一個(gè)內(nèi)置的依賴解析器,用于設(shè)置版本號(hào)以匹配Spring Boot依賴。
其次,它搜索 main 方法以將其標(biāo)記為可運(yùn)行的類。
最后,也許是最重要的,它收集類路徑上的所有jar并構(gòu)建一個(gè)單一的、可運(yùn)行的 über-jar。
現(xiàn)在一切都準(zhǔn)備好編寫我們的應(yīng)用程序類并直接進(jìn)入正題,讓我們?cè)谥鲬?yīng)用程序類中實(shí)現(xiàn)一個(gè)控制器:
@SpringBootApplication(scanBasePackages = "com.baeldung")
@RestController
public class EvenOddApplication {
private EvenOddService evenOddService;
// constructor
@GetMapping("/validate/")
public String isEvenOrOdd(
@RequestParam("number") Integer number) {
return evenOddService.isEvenOrOdd(number);
}
public static void main(String[] args) {
SpringApplication.run(EvenOddApplication.class, args);
}
}
在本文中,我們探索了如何使用Spring Boot實(shí)現(xiàn)和配置一個(gè)多模塊項(xiàng)目并自行構(gòu)建庫jar。
與往常一樣,可以在 GitHub 上找到代碼示例。
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)