SpringBoot+Maven搭建分模块项目

本文介绍了如何使用Maven在SpringBoot项目中搭建一个父级项目springboot-parent,并创建两个子模块springboot-service和springboot-controller,详细说明了每个步骤的配置过程,包括pom.xml文件的配置以及模块间的依赖关系。通过这种方式,可以实现项目的模块化,便于微服务开发。
摘要由CSDN通过智能技术生成

目录

简介

项目需求

实现步骤

1. 新建 springboot-parent 父级项目,项目结构如图

2. 在 pom 文件添加如下配置 

3. 在父级项目 springboot-parent 右键新建 Maven module 选项,创建子模块 springboot-service,项目结构如图

 4. 在 pom.xml 配置文件中添加如下配置

5. 在父级项目 springboot-parent 右键新建 Maven module 选项,创建子模块 springboot-controller,项目结构如图

 6. 在 pom,xml 配置文件中添加如下配置

7. 分别在 springboot-service,springboot-controller 添加对应方法

总结


简介

前面介绍的项目都是一个整体的 SpringBoot 项目,在实际的开发过程中,特别是微服务部分,经常需要将各个功能模块分开,使用 Maven 就能很好的实现这个效果

项目需求

搭建一个 springboot-parent 父级项目,搭建 springboot-controller,springboot-service 分模块

依赖关系

                       ↗ springboot-controller(子)
springboot-parent(父)                ↓
                       ↘ springboot-service(子)

实现步骤

1. 新建 springboot-parent 父级项目,项目结构如图

2. 在 pom 文件添加如下配置 

<groupId>com.ibm.spring</groupId>
<artifactId>springboot-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>springboot-parent</name>
<url>http://maven.apache.org</url>
<!-- 添加spring boot的父节点依赖 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.6.RELEASE</version>
    <relativePath/>
</parent>
<properties>
    <!-- 项目源码编码 -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!-- 项目构建编码 -->
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <!-- 指定JDK版本 -->
    <java.version>1.8</java.version>
    <!- 子模块 Controller 版本-->
    <module.controller.version>0.0.1-SNAPSHOT</module.controller.version>
    <!- 子模块 Service 版本-->
    <module.service.version>0.0.1-SNAPSHOT</module.service.version>
</properties>
<modules>
    <!-- 子模块 server -->
    <module>springboot-controller</module>
    <module>springboot-service</module>
</modules>
<dependencies>
    <!-- 添加 springboot web 依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>
<dependencyManagement>
    <dependencies>
        <!- 子模块 Controller 依赖-->
        <dependency>
            <groupId>com.ibm.springboot</groupId>
            <artifactId>springboot-controller</artifactId>
            <version>${module.controller.version}</version>
        </dependency>
        <!- 子模块 Service 依赖-->
        <dependency>
            <groupId>com.ibm.springboot</groupId>
            <artifactId>springboot-service</artifactId>
            <version>${module.service.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

注意:

(1) 对于父级项目,packaging 应设置成 pom 格式,否则无法添加子模块

(2) 上面配置中加粗部分实际上应该是后面两个子模块创建完毕后根据子模块信息添加

3. 在父级项目 springboot-parent 右键新建 Maven module 选项,创建子模块 springboot-service,项目结构如图

 4. 在 pom.xml 配置文件中添加如下配置

<parent>
    <groupId>com.ibm.spring</groupId>
    <artifactId>springboot-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.ibm.springboot</groupId>
<artifactId>springboot-service</artifactId>
<packaging>jar</packaging>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
    <!-- 引入其他依赖 -->
</dependencies>

5. 在父级项目 springboot-parent 右键新建 Maven module 选项,创建子模块 springboot-controller,项目结构如图

 6. 在 pom,xml 配置文件中添加如下配置

<parent>
    <groupId>com.ibm.spring</groupId>
    <artifactId>springboot-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>springboot-controller</artifactId>
<name>springboot-controller</name>
<packaging>jar</packaging>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
    <!-- 添加 service 模块依赖 -->
    <dependency>
        <groupId>com.ibm.springboot</groupId>
        <artifactId>springboot-service</artifactId>
    </dependency>
</dependencies>

注意:Controller 模块需调用 Service 模块,所以在 springboot-controller 子模块中要添加 springboot-service 依赖

7. 分别在 springboot-service,springboot-controller 添加对应方法

springboot-service

@Service
public class TestService {
    public String getMessage() {
	return "test message";
    }
}

springboot-controller

@RestController
@RequestMapping("/test")
public class TestController {
    @Resource
    private TestService testService;
	
    @GetMapping("/msg")
    public String getMessageFromService() {
	    return testService.getMessage();
    }
}

总结

1. 父级项目添加子模块的配置有两处,分别在 <modules> 和 <dependencyManagement> 下,子模块的信息一定要填写准确

2. 由于 Controller 模块还作为启动模块,特别要主要各个模块之间的包名的关系

如果 Controller 模块的启动类 App.class 所在的包和 Service 层所在的包名不匹配,则需要在启动类上添加 @ComponentScan 或 @ComponentScans 注解添加要扫描的包的路径;最佳实践:Controller 层的启动包名应是其他被调用子模块包名的父级关系(包含关系)。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值