SpringBoot多模块搭建的实现示例

 更新时间:2024年08月09日 10:05:39   作者:长生平安  
多模块开发是指将一个大型应用程序拆分为多个模块,本文主要介绍了SpringBoot多模块搭建的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、SpringBoot多模块介绍

Spring Boot是一个用于快速开发基于Spring框架的应用程序的工具。多模块开发是指将一个大型应用程序拆分为多个模块(或子项目),每个模块负责不同的功能或业务逻辑。在Spring Boot中,多模块开发可以帮助我们更好地组织代码、提高代码的可维护性和可扩展性。

在Spring Boot中,可以使用Maven或Gradle等构建工具来创建多模块项目。每个模块可以包含自己的源代码、配置文件和依赖项,同时也可以有自己的打包方式和部署方式。在多模块开发中,通常会有一个父模块(或者称为根模块),用于管理所有子模块之间的依赖关系和版本控制。

通过多模块开发,我们可以将不同功能的代码分离到不同的模块中,使得代码更加清晰和易于管理。同时,每个模块可以独立进行测试、构建和部署,有利于团队协作和项目的持续集成与部署。

总的来说,Spring Boot多模块开发可以帮助我们更好地组织和管理代码,提高开发效率和代码质量,是一个非常实用的开发方式。

二、搭建多模块

我们按照功能搭建多模块

1. 我们先建立父模块

在这里插入图片描述

这里我们什么都不用选直接点击create

2、创建子模块

父项目名称->右键->new->moudle

在这里插入图片描述

依次创建provide1、provide2、common、server,一样不用选如何依赖

在这里插入图片描述

将common、provide1、provide2的启动类和框出来的这些都删除

在这里插入图片描述

在父模块的pom里面声明子模块

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>demo</description>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.6.13</spring-boot.version>
    </properties>

    <!---父模块的打包方式-->
    <packaging>pom</packaging>

    <!--将子模块放在一堆-->
    <modules>
        <module>provide1</module>
        <module>provide2</module>
        <module>server</module>
        <module>common</module>
    </modules>

    <dependencyManagement>
        <dependencies>

            <dependency>
                <groupId>com.example</groupId>
                <artifactId>common</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>

            <dependency>
                <groupId>com.example</groupId>
                <artifactId>server</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>

            <dependency>
                <groupId>com.example</groupId>
                <artifactId>provide1</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>

            <dependency>
                <groupId>com.example</groupId>
                <artifactId>provide2</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
</project>

在每一个子模块的pom文件进行修改

  • common模块里面放入通用的依赖
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <artifactId>demo</artifactId>
        <groupId>com.example</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>common</artifactId>
    <description>通用模块</description>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
    </dependency>


    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

</dependencies>
</project>
  • server模块
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <artifactId>demo</artifactId>
        <groupId>com.example</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>server</artifactId>
    <description>启动模块</description>


    <dependencies>

        <dependency>
            <groupId>com.example</groupId>
            <artifactId>provide1</artifactId>
        </dependency>

        <dependency>
            <groupId>com.example</groupId>
            <artifactId>provide2</artifactId>
        </dependency>

    </dependencies>

</project>
  • provide1模块
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <artifactId>demo</artifactId>
        <groupId>com.example</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>provide1</artifactId>
    <description>provide1模块</description>

    <dependencies>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

</project>
  • provide2模块
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <artifactId>demo</artifactId>
        <groupId>com.example</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>provide2</artifactId>
    <description>provide2模块</description>

    <dependencies>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

</project>

在provide1里面创建一个resource再创建一个application.yml写一个端口号

server:
  port: 8081

在这里插入图片描述

这样模块就搭建成功了

到此这篇关于SpringBoot多模块搭建的实现示例的文章就介绍到这了,更多相关SpringBoot多模块搭建内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java中的Lambda表达式使用及说明

    java中的Lambda表达式使用及说明

    文章介绍了Java 8中Lambda表达式的基本概念及其在Stream流操作中的应用,Lambda表达式简化了函数式接口的实现,与Stream结合使用更流畅,文章还提供了Lambda表达式的各种简化技巧和注意事项,如方法引用、变量捕获规则以及异常处理等
    2026-05-05
  • Java Comparator比较器实例解析

    Java Comparator比较器实例解析

    这篇文章主要介绍了Java Comparator比较器实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Java对世界不同时区timezone之间时间转换的处理方法

    Java对世界不同时区timezone之间时间转换的处理方法

    这篇文章主要介绍了Java对世界不同时区timezone之间时间转换的处理方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Java利用Swagger2自动生成对外接口的文档

    Java利用Swagger2自动生成对外接口的文档

    这篇文章主要介绍了Java利用Swagger2自动生成对外接口的文档,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 使用Java WebSocket获取客户端IP地址的示例代码

    使用Java WebSocket获取客户端IP地址的示例代码

    在开发Web应用程序时,我们通常需要获取客户端的 IP 地址用于日志记录、身份验证、限制访问等操作,本文将介绍如何使用Java WebSocket API获取客户端IP地址,以及如何在常见的WebSocket框架中获得客户端 IP地址,需要的朋友可以参考下
    2023-11-11
  • 从内存模型中了解Java final的全部细节

    从内存模型中了解Java final的全部细节

    关于final关键字,它也是我们一个经常用的关键字,可以修饰在类上、或者修饰在变量、方法上,以此看来定义它的一些不可变性!像我们经常使用的String类中,它便是final来修饰的类,并且它的字符数组也是被final所修饰的。但是一些final的一些细节你真的了解过吗
    2022-03-03
  • Spring Mvc中拦截器Interceptor用法解读

    Spring Mvc中拦截器Interceptor用法解读

    这篇文章主要介绍了Spring Mvc中拦截器Interceptor用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • 详解jvm对象的创建和分配

    详解jvm对象的创建和分配

    这篇文章主要介绍了jvm对象的创建和分配的相关资料,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-03-03
  • idea配置SVN的教程

    idea配置SVN的教程

    文章介绍了如何安装和配置TortoiseSVN以及在IntelliJ IDEA中配置SVN,首先,安装TortoiseSVN时需要选择与电脑配置相匹配的版本,并确保安装命令行客户端工具,其次,在IntelliJ IDEA中配置SVN时,需要指定SVN可执行文件的路径
    2025-01-01
  • Java实现PDF在线预览功能(四种方式)

    Java实现PDF在线预览功能(四种方式)

    这篇文章主要介绍了Java实现PDF在线预览功能的四种方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10

最新评论