spring boot3多模块项目工程搭建-下(团队开发模板)

⛰️个人主页:     蒾酒

🔥系列专栏:《spring boot实战》


目录

写在前面

上文衔接

Common模块

DAO模块

Service模块

Web模块

API模块

写在最后 


写在前面

本文介绍了springboot开发后端服务,多模块项目工程搭建,各模块的常用依赖整合以及目录结构创建。坚持看完相信对你有帮助。

同时欢迎订阅springboot系列专栏,持续分享spring boot的使用经验。


上文衔接

上文链接:

​​​​​​spring boot3多模块项目工程搭建-上(团队开发模板)_多个module的springboot3项目配置-CSDN博客https://blog.csdn.net/qq_62262918/article/details/138279618?spm=1001.2014.3001.5501icon-default.png?t=N7T8https://blog.csdn.net/qq_62262918/article/details/138279618?spm=1001.2014.3001.5501上文已经初步搭建spring boot多模块聚合工程,并成功运行。下面开始各模块目录结构搭建,常用依赖整合。

Common模块

本模块主要放通用工具类和方法,通用配置,异常处理,常量定义,实体类,公共组件,自定义注解等。

目录结构示例:

常用依赖:

<!-- 引入lombok -->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency><!-- 引入参数校验依赖 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
</dependency><!-- 引入jwt依赖 -->
<dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version>
</dependency><!-- 如果jdk大于1.8,则还需导入以下依赖 -->
<dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.1</version>
</dependency>

具体依赖根据项目实际添加

DAO模块

本模块负责与数据库进行交互,执行数据访问操作,主要放mapper和实体类

目录结构示例:

常用依赖:

<!-- mybatis-plus -->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.5</version><exclusions><exclusion><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId></exclusion></exclusions>
</dependency><!-- mybatis -->
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>3.0.3</version>
</dependency><!-- mysql驱动 -->
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.2.0</version><scope>runtime</scope>
</dependency><!-- mybatis-plus代码生成器 -->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.5</version>
</dependency><!-- 代码生成使用模板 -->
<dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.3</version>
</dependency><!-- druid数据库连接池 -->
<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-3-starter</artifactId><version>1.2.20</version>
</dependency><!-- 引入common模块 -->
<dependency><groupId>com.mijiu</groupId><artifactId>common</artifactId>
</dependency>

这里仅仅引入了mybatis/plus相关的所有依赖并未进行相关配置,配置可以参考:

Spring Boot3整合MyBatis Plus_springboot3整合mybatis-plus-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_62262918/article/details/135734561?spm=1001.2014.3001.5501这篇是基于单模块结构整合的,多模块结构的整合就是放在对应模块即可。

Service模块

本模块包含应用程序的业务逻辑,负责处理业务规则和数据处理。主要放业务接口以及实现类

目录结构示例:

常用依赖:

<!-- 引入dao模块 -->
<dependency><groupId>com.mijiu</groupId><artifactId>dao</artifactId>
</dependency>

实际根据项目需求进行添加即可

Web模块

本模块负责处理请求,主要放控制类和web相关配置类以及web服务启动类

目录结构示例:

常用依赖:

<!-- web组件 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency><!--测试组件-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>
</dependency><!-- service模块 -->
<dependency><groupId>com.mijiu</groupId><artifactId>service</artifactId>
</dependency>

API模块

本模块用于定义应用程序的外部接口,一般放外部接口请求、响应、封装(收口简化调用),错误码、状态码枚举等

目录结构示例:

 常用依赖:

<!-- okhttp3 依赖 -->
<dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.12.0</version>
</dependency><!-- 引入common模块 -->
<dependency><groupId>com.mijiu</groupId><artifactId>common</artifactId>
</dependency>

写在最后 

spring boot3多模块项目工程搭建各模块目录结构搭建,常用依赖引入到这里就结束了。任何问题评论区或私信讨论,欢迎指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/837464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ZL-016D多通道小鼠主动跑轮系统主要研究动物生活节律

简单介绍&#xff1a; 多通道小鼠主动跑轮系统是由动物本身自发运动来推动跑轮转动。在这种构型中&#xff0c;笼内动物长期活动的信息&#xff0c;如跑轮转动方向、转数、累计总行程等&#xff0c;能够使用编码器进行长度计记录。此装置由转轮组件、笼体、以及转动方向速度传…

勒索软件漏洞?在不支付赎金的情况下解密文件

概述 在上一篇文章中&#xff0c;笔者对BianLian勒索软件进行了研究剖析&#xff0c;并且尝试模拟构建了一款针对BianLian勒索软件的解密工具&#xff0c;研究分析过程中&#xff0c;笔者感觉构建勒索软件的解密工具还挺有成就感&#xff0c;因此&#xff0c;笔者准备再找一款…

uniapp外部scss文件使用scss语法不生效,

项目场景&#xff1a; 页面的样式重复我想提取出来作为公共样式 新建scss文件&#xff0c;然后引入&#xff0c;结果样式不生效 问题描述&#xff1a; uniapp官网示例引入css的方法 /* 绝对路径 */ import url(/common/uni.css); import url(/common/uni.css); /* 相对路径 …

企业OA办公系统开发笔记:2、MyBatis-Plus

文章目录 企业办公系统&#xff1a;2、MyBatis-Plus一、MyBatis-Plus1、简介2、主要特点3、依赖 二、MyBatis-Plus入门1、配置文件2、启动类3、实体类4、添加Mapper类5、测试Mapper接口6、CRUD测试6.1、insert添加6.1.1、示例6.1.2、主键策略 6.2、更新6.3、删除6.3.1、根据id删…

第十一届蓝桥杯大赛软件类决赛 Java A 组

文章目录 发现宝藏【考生须知】试题 A: 合数个数试题 B : 含 2 天数试题 C: 本质上升序列试题 D: 迨尺天涯试题 E: 玩具蛇试题 F: 游园安排试题 G: 画廊试题 H: 奇偶覆盖试题 I: 补给试题 J: 蓝跳跳 发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&…

【Python】Python中的除法运算

在 Python 中&#xff0c;除法运算可以通过几种不同的运算符来执行&#xff0c;主要包括普通除法 (/) 和整除 (//)&#xff0c;还有取余运算 (%)&#xff0c;这些运算符有各自的特定用途和行为。 1. 普通除法 (/) 普通除法运算符 / 用于执行标准的除法运算&#xff0c;结果总…

【Linux】使用Valgrind定位内存增长问题

文章目录 1 内存问题2 Valgrind2.1 Valgrind介绍2.2 Valgrind中的Memcheck2.3 Valgrind中的Massif 3 总结 1 内存问题 内存问题是一类比较难以定位的问题&#xff0c;通常有两类场景&#xff1a; 程序在低负载情况下的内存使用量是否正常&#xff0c;低负载情况下不应该太高程…

Python基础语法【1】

做个简单的总结 1.输出 直接通过print函数进行输出 print("Hello") 2.变量 2.1命名规则 变量名只能包含字母、数字和下划线。变量名能以字母或下划线打头&#xff0c;但不能以数字打头。例如&#xff0c;可将变量命名为message_1&#xff0c;但不能将其命名为1…

spring-activiti 一些操作

文章目录 一、bpmn文件部署二、发起一个流程三、查找任务四、提交/完成任务五、流程定义的查询六、流程的删除七、流程历史信息查看八、指派任务九、委派任务十、放回任务十一、回退任务十二、终止任务 一、bpmn文件部署 AurowardRepositoryService rep;//通过流区创建一个工作…

什么是 PowerShell

什么是 PowerShell&#xff1f; PowerShell 是一种跨平台的任务自动化解决方案&#xff0c;由命令行 shell、脚本语言和配置管理框架组成。 PowerShell 在 Windows、Linux 和 macOS 上运行。 命令行 Shell ​ PowerShell 是新式命令 shell&#xff0c;其中包括其他常用 shel…

(接上一篇linux rocky 搭建DNS高阶版)实现不同网段访问解析不同的服务器并加域

上一篇链接&#xff1a;linux rocky 搭建DNS服务和禁止AD域控DNS&#xff0c;做到独立DNS并加域-CSDN博客文章浏览阅读417次&#xff0c;点赞13次&#xff0c;收藏7次。使用linux rocky 搭建DNS服务&#xff0c;用于独立AD域控DNS存在&#xff0c;并且实现加域。https://blog.c…

【算法刷题day53】Leetcode:1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和

文章目录 Leetcode 1143. 最长公共子序列解题思路代码总结 Leetcode 1035. 不相交的线解题思路代码总结 Leetcode 53. 最大子数组和解题思路代码总结 草稿图网站 java的Deque Leetcode 1143. 最长公共子序列 题目&#xff1a;1143. 最长公共子序列 解析&#xff1a;[代码随想录…

数字集成电路物理设计[陈春章]——知识总结与精炼01

第一章 集成电路物理设计方法 1.1 数字集成电路设计挑战 1.2 数字集成电路设计流程 前两节内容讲述的是数字集成电路发展与流程&#xff0c;知识体系比较宏观和简单&#xff0c;请读者自行了解即可。 1.3 数字集成电路设计收敛 实现设计收敛任务&#xff1a;①数据系统;②优…

Flume 的安装和使用方法(Spark-2.1.0)

一、Flume的安装 1.下载压缩包 https://www.apache.org/dyn/closer.lua/flume/1.7.0/apache-flume-1.7.0-bin.tar.gz 2.上传到linux中 3.解压安装包 cd #进入加载压缩包目录sudo tar -zxvf apache-flume-1.7.0-bin.tar.gz -C /usr/local # 将 apache-flume-1.7.0-bin.tar.g…

夯实spring(二十一):@Scope、@DependsOn、@ImportResource、@Lazy

本文问题: 1. Scope是做什么的&#xff1f;常见的用法有几种&#xff1f;2. DependsOn是做什么的&#xff1f;常见的用法有几种&#xff1f;3. ImportResource干什么的&#xff1f;通常用在什么地方&#xff1f;4. Lazy做什么的&#xff0c;通常用在哪些地方&#xff1f;常见的…

leetcode-15. 三数之和

题目描述 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组…

有哪些值得买的开放式耳机推荐?2024年开放式运动耳机选购指南

开放式耳机因其独特设计&#xff0c;能在一定程度上保护听力。相较于传统封闭式耳机&#xff0c;开放式设计允许周围环境声音自然流入耳内&#xff0c;降低了耳内共振和声压&#xff0c;减少了耳道的不适感&#xff0c;从而减轻了对听力的潜在损害。对于追求音质与听力保护并重…

iOS git创建与合并分支

参考文章 Git – 创建与合并分支 相关命令行解释 1. 创建并切换到该分支&#xff1a; 2.0.0是新建的分支的名字 git checkout -b 2.0.0 相当于下面这两句 创建分支 git branch 2.0.0 切换到某个分支 git checkout 2.0.0 2. 查看当前所有分支&#xff1a; git branch 如何提…

国外新闻媒体推广:多元化媒体分发投放-大舍传媒

前言 &#xff1a;随着全球化的进程&#xff0c;国外新闻市场呈现出快速发展的趋势。在这个趋势下&#xff0c;国外新闻媒体推广成为了各行业企业宣传业务的重要一环。本文将重点介绍大舍传媒的多元化媒体分发投放服务&#xff0c;以及对国外新闻媒体推广的意义。 1. 多元化媒…

阿赵UE引擎C++编程学习笔记——解决中文乱码问题

大家好&#xff0c;我是阿赵。   在UE编写C的时候&#xff0c;可能有些朋友发现&#xff0c;在C里面如果打印输出或者赋值一些中文的字符串的时候&#xff0c;会出现各种的报错&#xff0c;要么乱码&#xff0c;要么直接编译不过。   这个问题&#xff0c;其实和UE本身没什…