SpringBoot多模块项目初始化搭建

举报
木字楠 发表于 2022/12/13 10:00:24 2022/12/13
【摘要】 🎶 文章简介:SpringBoot多模块项目初始化搭建💡 创作目的:详细介绍SpringBoot多模块项目的搭建☀️ 今日天气:阳光明媚📝 每日一言:不求事事圆满,但求事事甘心。@[TOC]后端项目采用多模块项目模式来进行编写 1、新建父模块项目 1.1、SpringBoot项目新建Name:MuZiNan-Server => [项目名称]Location:D:\project...

🎶 文章简介:SpringBoot多模块项目初始化搭建
💡 创作目的:详细介绍SpringBoot多模块项目的搭建
☀️ 今日天气:阳光明媚
📝 每日一言:不求事事圆满,但求事事甘心。


@[TOC]

后端项目采用多模块项目模式来进行编写

1、新建父模块项目

1.1、SpringBoot项目新建

Name:MuZiNan-Server => [项目名称]

Location:D:\project\many\MuZiNan-Server => [项目位置 ]

Jdk:1.8 => [版本]

packing:jar => [打包方式]

在这里插入图片描述

springboot版本随意,先选择一个web依赖即可!

在这里插入图片描述

1.2、maven信息配制

IDEA默认maven配制下载速度极慢,我们将其修改为我们自己的配置。
Maven home path: Maven安装位置

User setting file: setting.xml文件位置

Local respository:依赖存放仓库位置

在这里插入图片描述

1.3、删除多余文件

除了pom.xml文件保留,其他文件全部删除

在这里插入图片描述

删除完毕之后

在这里插入图片描述

1.4、pom.xml修改

1、SpringBoot版本修改为 2.5.5版本

2、项目基本信息修改

3、版本控制 依赖的版本管理通过properties内部进行控制

4、依赖管理 [dependencyManagement]

使用dependencyManagement包裹dependencies,这样可以做到依赖的声明,但是不引用。

请添加图片描述

1.5、pom.xml文件

<?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>
    <packaging>pom</packaging>


    <!-- SpringBoot 版本 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.5</version>
        <relativePath/>
    </parent>

    <!-- 木字楠服务基本信息 -->
    <groupId>space.muzinan</groupId>
    <artifactId>MuZiNan-Server</artifactId>
    <version>1.0</version>
    <name>MuZiNan-Server</name>
    <description>木字楠博客后台服务~</description>

    <!-- 版本控制 -->
    <properties>
        <java.version>1.8</java.version>
        <!--===================== SpringBoot相关依赖版本  =========================-->
        <springboot.version>2.5.5</springboot.version>
    </properties>

    <!-- 依赖管理 -->
    <dependencyManagement>
        <dependencies>
            <!--===================== SpringBoot相关依赖  =========================-->
            <!-- Web模块 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>${springboot.version}</version>
            </dependency>
            <!-- 测试模块 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <version>${springboot.version}</version>
            </dependency>
        </dependencies>

    </dependencyManagement>

</project>

2、新建子模块项目

右击父级项目

New -> Module

在这里插入图片描述

2.1、Web模块[interface模块]

新建一个maven项目

父级模块选用MuZiNan-Server

Jdk版本与父级保持一致

GroupId、ArtifactId 默认即可

在这里插入图片描述

新建成功

在这里插入图片描述

2.2、Business模块[service模块]

新建一个maven项目

父级模块选用MuZiNan-Server

Jdk版本与父级保持一致

GroupId、ArtifactId 默认即可

在这里插入图片描述

新建成功

在这里插入图片描述

2.3、Mapper模块[dao模块]

新建一个maven项目

父级模块选用MuZiNan-Server

Jdk版本与父级保持一致

GroupId、ArtifactId 默认即可

在这里插入图片描述

新建成功

在这里插入图片描述

2.4、Api模块[实体类存放]

新建一个maven项目

父级模块选用MuZiNan-Server

Jdk版本与父级保持一致

GroupId、ArtifactId 默认即可

在这里插入图片描述

新建成功

在这里插入图片描述

2.5、common模块[共用类存放]

新建一个maven项目

父级模块选用MuZiNan-Server

Jdk版本与父级保持一致

GroupId、ArtifactId 默认即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8jMraeHK-1660199324759)(D:\note\noteFile\日常笔记\木字楠博客\image-20220811115109190.png)]

新建成功

3、模块依赖关系配制

3.1、保留web模块主启动类

只保留web模块中的主启动类,删除其他模块的主启动类(多模块项目仅需要一个主启动类)

请添加图片描述

修改主启动类名称(当然也可以不修改,单纯觉得Main很难看,不像是SPringBoot项目)

在这里插入图片描述

3.2、模块依赖引入

项目中的各个模块的职能:

web模块: 服务的接口入口,也就是存放Controller以及runner等…

business模块: 存放业务具体的实现类的位置以及相关配置信息等…

mapper模块: 存放Mapper接口以及部分配置信息等…

api模块: 存放实体类api接口以及request等信息…

common模块: 存放共用工具类共用服务等…

根据MVC思想,我们正常的思路是通过controller来调用service层,然后通过service层调用dao层来实现一个具体的业务

多模块项目也是如此,只不过各个部分被分割为不同模块,我们需要使用依赖引入的方式来联通各个模块,是各个模块之间可以进行调用

引入顺序:web模块 引入 business模块(这样controller中可以调用business中的具体实现类)

​ business模块 引入 mapper模块(business引入了mapper,controller可以间接调用mapper)

​ mapper模块 引入 api模块(同上)

​ api模块 引入 common模块(同上)

${parent.groupId}:父级模块的groupId

${parent.version}:父级模块的version

3.2.1、web模块pom.xml

<dependencies>
	<!-- Business模块引入 -->
	<dependency>
		<groupId>${parent.groupId}</groupId>
		<artifactId>muzinan-business</artifactId>
		<version>${parent.version}</version>
	</dependency>
</dependencies>

3.2.2、business模块pom.xml

<dependencies>
	<!-- Mapper模块引入 -->
	<dependency>
		<groupId>${parent.groupId}</groupId>
		<artifactId>muzinan-mapper</artifactId>
		<version>${parent.version}</version>
	</dependency>
</dependencies>

3.2.3、mapper模块pom.xml

<dependencies>
	<!-- Api模块引入 -->
	<dependency>
		<groupId>${parent.groupId}</groupId>
		<artifactId>muzinan-api</artifactId>
		<version>${parent.version}</version>
	</dependency>
</dependencies>

3.2.4、api模块pom.xml

<dependencies>
	<!-- Common模块引入 -->
	<dependency>
		<groupId>${parent.groupId}</groupId>
		<artifactId>muzinan-common</artifactId>
		<version>${parent.version}</version>
	</dependency>
</dependencies>

3.2.5、依赖引入成功

依赖引入成功,这样我们的几个模块以及相互引入成功

请添加图片描述

3.3、基础spring依赖引入

因为我们所有模块都需要使用spring依赖信息,所有我们会将所有的基础依赖common模块进行引入。

请添加图片描述

4、启动项目

4.1、Web模块配制文件配制

请添加图片描述

4.2、主启动类配制

请添加图片描述

4.3、启动项目

请添加图片描述
在这里插入图片描述


在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。