更新時間:2021-12-29 10:50:29 來源:動力節(jié)點 瀏覽2104次
在本快速教程中,我們將展示 如何使用Spring Boot創(chuàng)建多模塊項目。
首先,我們將構(gòu)建一個不是應(yīng)用程序本身的庫 jar,然后我們將構(gòu)建一個使用我們的庫的應(yīng)用程序。
要設(shè)置我們的多模塊項目,讓我們 使用pom 打包 創(chuàng)建一個簡單的模塊, 以 在我們的 Maven 配置中聚合我們的庫和應(yīng)用程序模塊:
<groupId>com.baeldung</groupId>
<artifactId>parent-multi-module</artifactId>
<packaging>pom</packaging>
我們將在我們的項目中創(chuàng)建兩個目錄,將應(yīng)用程序模塊與庫jar模塊分開。
讓我們在pom.xml 中聲明我們的模塊:
<modules>
<module>library</module>
<module>application</module>
</modules>
對于我們的庫模塊,我們將使用jar包裝:
<groupId>com.baledung.example</groupId>
<artifactId>library</artifactId>
<packaging>jar</packaging>
由于我們想利用Spring Boot依賴管理,我們將使用 spring-boot-starter-parent 作為父項目,注意將<relativePath/> 設(shè)置為空值,以便 Maven 將解析父pom。來自存儲庫的xml:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath/>
</parent>
請注意,如果我們有自己的父項目,我們可以在pom.xml 的<dependencyManagement/>部分將依賴項管理作為物料清單 (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>
最后,初始依賴項將非常簡單:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
在這個模塊中, Spring Boot插件不是必需的,因為它的主要功能是創(chuàng)建一個可執(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 依賴項之外,我們還將包含在上一節(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>
在這個地方使用上面提到的插件有幾個方便的原因。
首先,它提供了一個內(nèi)置的依賴解析器,用于設(shè)置版本號以匹配Spring Boot依賴。
其次,它搜索 main 方法以將其標(biāo)記為可運行的類。
最后,也許是最重要的,它收集類路徑上的所有jar并構(gòu)建一個單一的、可運行的 über-jar。
現(xiàn)在一切都準(zhǔn)備好編寫我們的應(yīng)用程序類并直接進入正題,讓我們在主應(yīng)用程序類中實現(xiàn)一個控制器:
@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實現(xiàn)和配置一個多模塊項目并自行構(gòu)建庫jar。
與往常一樣,可以在 GitHub 上找到代碼示例。
初級 202925
初級 203221
初級 202629
初級 203743