更新时间:2021-12-29 10:50:29 来源:极悦 浏览1886次
在本快速教程中,我们将展示 如何使用Spring Boot创建多模块项目。
首先,我们将构建一个不是应用程序本身的库 jar,然后我们将构建一个使用我们的库的应用程序。
要设置我们的多模块项目,让我们 使用pom 打包 创建一个简单的模块, 以 在我们的 Maven 配置中聚合我们的库和应用程序模块:
<groupId>com.baeldung</groupId>
<artifactId>parent-multi-module</artifactId>
<packaging>pom</packaging>
我们将在我们的项目中创建两个目录,将应用程序模块与库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/> 设置为空值,以便 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) 导入:
<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插件不是必需的,因为它的主要功能是创建一个可执行文件über-jar,我们不需要也不需要库。
之后,我们准备开发将由库提供的服务组件:
@Service
public class EvenOddService {
public String isEvenOrOdd(Integer number) {
return number % 2 == 0 ? "Even" : "Odd";
}
}
与我们的库模块一样,我们的应用程序模块将使用 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 依赖项之外,我们还将包含在上一节中创建的库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>
在这个地方使用上面提到的插件有几个方便的原因。
首先,它提供了一个内置的依赖解析器,用于设置版本号以匹配Spring Boot依赖。
其次,它搜索 main 方法以将其标记为可运行的类。
最后,也许是最重要的,它收集类路径上的所有jar并构建一个单一的、可运行的 über-jar。
现在一切都准备好编写我们的应用程序类并直接进入正题,让我们在主应用程序类中实现一个控制器:
@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实现和配置一个多模块项目并自行构建库jar。
与往常一样,可以在 GitHub 上找到代码示例。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习