spring boot3单模块项目工程搭建-下(个人开发模板)
⛰️个人主页: 蒾酒
🔥系列专栏:《spring boot实战》
目录
写在前面
上文衔接
常用依赖介绍以及整合
web组件
测试组件
样板代码生成
数据库连接器
常用工具包
面向切面编程
ORM框架
数据连接池
接口测试、文档导出
缓存中间件
参数校验
认证鉴权
基础功能完善
跨域问题解决
统一数据返回格式
自定义业务异常捕获处理
拦截器链
写在最后
写在前面
本文介绍了springboot开发后端服务,单模块项目工程搭建。坚持看完相信对你有帮助。
同时欢迎订阅springboot系列专栏,持续分享spring boot的使用经验。
上文衔接
上文已经把基本目录结构搭建完成本文来整合一下常用依赖以及完善一些基础功能。
上文链接:
spring boot3单模块项目工程搭建-上(个人开发模板)-CSDN博客https://blog.csdn.net/qq_62262918/article/details/138050959?spm=1001.2014.3001.5501
常用依赖介绍以及整合
web组件
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
spring-boot-starter-web
是 Spring Boot 提供的一个起步依赖,用于快速构建基于 Spring MVC 的 Web 应用程序。通过引入这个依赖,你可以快速地搭建一个Web应用程序,并且使用Spring Boot的自动配置功能,简化了配置和部署的过程。
这个起步依赖包括了以下几个主要模块:
- Spring MVC:提供了一个基于MVC(Model-View-Controller)模式的Web框架,用于处理HTTP请求和响应。
- Tomcat:内嵌的Servlet容器,可以使你的应用程序在不需要单独部署容器的情况下运行。
- Spring Web:Spring框架中的Web模块,提供了一些基本的Web开发功能,比如处理请求和响应、数据绑定、数据验证等。
- 其他相关依赖:还包括了一些其他相关的依赖,比如Jackson(用于JSON序列化和反序列化)、Spring Boot的自动配置模块等。
测试组件
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
spring-boot-starter-test
是 Spring Boot 提供的一个用于测试的起步依赖,它集成了多种测试工具和库,使得开发者可以方便地对 Spring Boot 应用进行单元测试和集成测试。通过这个依赖,开发者无需单独配置每一个测试相关的库,简化了测试环境的搭建。
样板代码生成
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>
lombok
库,它通过在 Java 类中添加注解来自动化生成样板代码,从而简化代码编写过程。
主要功能:
-
自动生成 Getters 和 Setters:通过在类上添加
@Getter
和@Setter
注解,可以自动生成属性的 Getter 和 Setter 方法,减少了样板代码的编写。 -
自动生成构造函数:通过
@NoArgsConstructor
、@RequiredArgsConstructor
和@AllArgsConstructor
注解,可以自动生成无参构造函数、带有必填参数的构造函数和包含所有参数的构造函数。 -
自动生成
toString()
方法:通过@ToString
注解,可以自动生成toString()
方法,方便输出对象的字符串表示。 -
自动生成
equals()
和hashCode()
方法:通过@EqualsAndHashCode
注解,可以自动生成equals()
和hashCode()
方法,方便对象之间的比较。 -
自动生成
@Builder
方法:通过@Builder
注解,可以使用 Builder 模式来创建对象,简化对象的构建过程。 -
自动生成
@Data
注解:@Data
注解包含了@Getter
、@Setter
、@EqualsAndHashCode
和@ToString
注解的功能,可以一次性生成这些方法。 -
自动生成
@Slf4j
注解:通过@Slf4j
注解,可以自动生成日志记录器,在类中直接使用log
字段来进行日志记录,无需手动创建日志记录器对象。
数据库连接器
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.2.0</version><scope>runtime</scope></dependency>
这个依赖项是用于在 Java 应用程序中连接和操作 MySQL 数据库的 JDBC 驱动程序。另外在整合各种ORM框架(mybatis-mybatis-plus)这些框架都依赖这个JDBC 驱动程序。
常用工具包
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.25</version></dependency>
Hutool 是一个 Java 工具包,提供了丰富的功能来简化 Java 开发中的常见任务。hutool-all
这个模块包含了 Hutool 提供的所有功能,主要包括但不限于以下几个方面:
- 字符串处理:包括字符串的切割、拼接、替换、格式化等操作。
- 日期时间处理:提供了日期时间的格式化、解析、计算、时间间隔等功能。
- 加密解密:支持常见的加密算法,包括 MD5、SHA、AES、RSA 等。
- 文件操作:提供了文件的读写、复制、移动、压缩、解压等功能。
- HTTP 客户端:支持 HTTP 请求的发送和接收,包括 GET、POST 等方法。
- 邮件发送:支持邮件的发送和接收,包括 SMTP 协议的使用。
- 图片处理:支持图片的缩放、裁剪、水印、压缩等操作。
- Excel 操作:支持 Excel 文件的读写、导入导出、样式设置等功能。
- PDF 操作:支持 PDF 文件的读写、合并、拆分等操作。
- JSON 解析:支持 JSON 字符串的解析和生成。
- 常用工具类:提供了各种常用的工具类,包括数组操作、集合操作、反射工具等。
面向切面编程
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId>
</dependency>
这个依赖项是用于在 Spring Boot 应用程序中启用面向切面编程(AOP)的功能的。
AOP 是一种编程范式,允许开发者在程序运行期间动态地将代码切入到现有方法中,实现横切关注点的重用和集中管理,例如日志记录、事务管理、安全性检查等
ORM框架
详情见这篇:
Spring Boot3整合MyBatis Plus_springboot3整合mybatis-plus-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135734561?spm=1001.2014.3001.5502
数据连接池
详情见这篇:
Spring Boot3整合Druid(监控功能)_springboot3 druid-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135738692?spm=1001.2014.3001.5502
接口测试、文档导出
详情见这篇:
Spring Boot3整合knife4j(swagger3)_springboot3 knife4j-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135761392?spm=1001.2014.3001.5502
缓存中间件
详情见这篇:
Spring Boot3整合Redis_springboot3整合redis-CSDN博客https://blog.csdn.net/qq_62262918/article/details/136067550?spm=1001.2014.3001.5502
参数校验
详情见这篇:
spring boot3参数校验基本用法_springboot3使用校验类注解-CSDN博客https://blog.csdn.net/qq_62262918/article/details/136180252?spm=1001.2014.3001.5502
认证鉴权
详情见这篇:
spring boot3登录开发-1(整合jwt)_spring boot 3.x 整合jwt-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135964626?spm=1001.2014.3001.5502
基础功能完善
跨域问题解决
详情见这篇:
spring boot3解决跨域的几种方式_springboot3 跨域-CSDN博客https://blog.csdn.net/qq_62262918/article/details/136334332?spm=1001.2014.3001.5502
统一数据返回格式
详情见这篇:
Spring Boot3统一结果封装_spring boot结果集封装-CSDN博客https://blog.csdn.net/qq_62262918/article/details/136075039?spm=1001.2014.3001.5502
自定义业务异常捕获处理
详情见这篇:
Spring Boot3自定义异常及全局异常捕获_springboot是如何自定义异常并捕获的-CSDN博客https://blog.csdn.net/qq_62262918/article/details/136110267?spm=1001.2014.3001.5502
拦截器链
spring boot3token拦截器链的设计与实现_springboot3 拦截器-CSDN博客https://blog.csdn.net/qq_62262918/article/details/136143401?spm=1001.2014.3001.5502
写在最后
spring boot3单模块项目工程搭建常用依赖整合和基础功能完善到这里就结束了,任何问题评论区或私信讨论,欢迎指正。
相关文章:

spring boot3单模块项目工程搭建-下(个人开发模板)
⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 目录 写在前面 上文衔接 常用依赖介绍以及整合 web组件 测试组件 样板代码生成 数据库连接器 常用工具包 面向切面编程 ORM框架 数据连接池 接口测试、文档导出 缓存中间件 参数校…...

精准清理 MongoDB 数据:删除集合的正确姿势
在 MongoDB 数据库管理中,数据清理是维护数据库性能和保持数据一致性的关键步骤之一。而删除集合是实现数据清理的重要手段之一。在这个信息爆炸的时代,了解如何正确地执行集合删除操作至关重要。本文将深入探讨 MongoDB 中删除集合的常用方法、最佳实践…...

java 执行修改语句
你可以使用Java中的JDBC(Java Database Connectivity)来执行修改语句。以下是一个示例: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement;public class Main {public…...

【Linux系统化学习】网络套接字(编写简单的UDP服务端和客户端)
目录 理解源IP地址和目的IP地址 认识端口号 端口号和进程ID的区别 源端口号和目的端口号 认识TCP和UDP协议 TCP协议 UDP协议 网络字节序 socket编程接口 socket常见API sockaddr结构 简单的UDP网络程序 UDP服务端 创建套接字 填充本地网络信息 绑定 收取消息 …...

MFC 列表控件修改实例(源码下载)
1、本程序基于前期我的博客文章《MFC下拉菜单打钩图标存取实例(源码下载)》 2、程序功能选中列表控件某一项,修改这一项的按钮由禁止变为可用,双击这个按钮弹出对话框可对这一项的记录数据进行修改,点击确定保存修改数…...

QT设计模式:模板模式
基本概念 模板模式(Template Pattern)是一种行为型设计模式,它定义了一个操作中的算法的模板,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 实现的模块有࿱…...

8.k8s中网络资源service
目录 一、service资源概述 二、service资源类型 1.ClusterIP类型 2.service的nodeport类型 3.service的loadbalancer类型(了解即可) 4.service的externalname类型(了解即可) 三、nodeport的端口范围设置和svc的endpoint列表 1.修…...

51单片机keil编程中遇到的问题(持续更新)
字符无法打印报错 查看特殊功能寄存器名字的时候也会报错,因为无法编译通过,导致头文件的定义内容无法查找 keil编译中 error C127: ‘xx’: invalid storage class 这种一般是在编写头文件或源文件时,在声明函数的结尾没有添加分号&…...

C++类和对象详解(一)
目录 面向过程和面向对象初步认识类的引入类的定义类的两种定义方式声明和定义全部放在类体中 声名定义分离 类的作用域成员变量命名规则建议访问限定符 类的封装类的实例化类对象模型类的对象大小的计算扩展 结构体内存对齐规则 感谢各位大佬对我的支持,如果我的文章对你有用,…...

SCI论文检索报告长什么样?怎么出具?一文了解!
1、SCI检索报告是什么 SCI数据库收录最能反映基础学科研究水平和论文质量,该检索系统收录的科技期刊比较全面,可以说它是集中各个学科高质优秀论文的精粹,评职晋升、项目申报、评奖评优等很多关键时期,都需要开具已经在SCI发表的论…...

UE4_Water插件_Buoyancy组件使用
water插件提供了一个浮力Actor蓝图类。 需要注意的几个问题: 1、StaticMesh需要替换根组件。 2、需要模拟物理设置质量。 3、需要添加浮力组件,设置浮力点,应用水中牵引力。...

OceanBase学习1:分布式数据库与集中式数据库的差异
目录 1. 传统集中式数据库 2. 数据库中间件的分库分表 3. 分布式数据库的基本特点及对比分析 4. OceanBase和传统数据库的对比 5. 小结 1. 传统集中式数据库 优点 成熟稳定:经过近40年的发展,应用到各行各业,产品技术非常成熟稳定行业适配性强:适配…...

计算机网络技术主要学什么内容,有哪些课程
计算机网络技术专业是一个涉及理论与实践紧密结合的学科,主要学习内容有计算机网络基础、网络设备技术、网络编程等内容,以下是上大学网(www.sdaxue.com)整理的计算机网络技术主要学什么内容,供大家参考! 基…...

Mac下安装ffmpeg
1、安装gedit brew install gedit2、配置环境变量,打开~/.zshrc,在末尾添加语句 export PATH$PATH:/usr/local/ffmpeg/bin3、执行语句,使环境变量生效 source ~/.zshrc 4、终端输入 ffmpeg ,看环境变量是否配置成功。 至此&a…...

自制AI:Park_01修改bug
修改了一下不能存东西,不能打开东西的bug #include<bits/stdc.h> #include<windows.h> using namespace std; double mem10737418240; map<string,string> jishiben; string mulu"朴同学给你的一封信.memo\n"; int cntnote1; void sta…...

解救应用启动危机:Spring Boot的FailureAnalyzer机制
目录 一、走进FailureAnalyzer 二、在Spring Boot中如何生效 三、为什么可能需要自定义FailureAnalyzer 四、实现自定义基本步骤 (一)完整步骤要求 (二)注册方式说明 通过Spring Boot的spring.factories文件(建…...

win11个性化锁屏界面怎么关闭?
win11个性化锁屏界面关闭方法对于win11用户来说,关闭个性化锁屏界面是一个常见问题。本文将由php小编苹果详细介绍如何执行此操作,分步指导并提供操作截图。继续阅读以了解具体步骤。 win11个性化锁屏界面关闭方法 第一步,点击底部Windows图…...

白酒:白酒香型与品质消费的关系及影响
云仓酒庄的豪迈白酒作为中国白酒的品牌,其白酒香型与品质消费的关系及影响备受关注。随着消费者对品质的重视程度不断提高,了解白酒香型与品质之间的关系对于云仓酒庄和消费者都具有重要意义。 经云仓酒庄豪迈白酒分析,白酒香型与品质消费的关…...

智能BI(后端)-- 系统优化(安全性,数据存储,限流)
文章目录 安全性todo 数据存储限流限流的几种算法限流粒度限流的实现本地限流(单机限流)Redisson实现分布式限流(多机限流) 安全性 问题引入:如果用户上传一个超大的文件怎么办?比如1000G? 预防: 只要涉及…...

探索数字社交的奇迹:解读Facebook的革命性影响
1. 社交互动的全新模式 Facebook的出现不仅仅是一个社交媒体平台的诞生,更是一种全新的社交互动模式的开启。传统的社交模式主要依赖于面对面的交流,而Facebook则将社交推向了全新的数字化平台,使得人们可以在虚拟的世界里建立和维系社交关系…...

FileCodeBox-Lite:轻量级文件分享解决方案
在数字时代,文件分享是一个常见的需求,无论是个人用户还是企业团队。FileCodeBox-Lite提供了一个简单、高效且安全的文件分享解决方案。以下是对FileCodeBox-Lite项目的详细介绍。 项目简介 FileCodeBox-Lite是一个轻量级的文件分享系统,…...

【ARM】ARM寄存器和异常处理
目录 1.指令的执行过程 2. ARM处理器概述 3.ARM指令集 4.ARM存储模型 5. ARM工作模式 6.ARM寄存器组织 (1)寄存器 (2) ARM寄存器 (3)CPSR寄存器 7. ARM异常处理 (1&am…...

数仓建模【埋点设计与管理】
埋点设计与管理 埋点的作用 分析用户转化以及留存:分析用户偏好收集市场反馈保障用户数据安全定位异常其他作用 埋点数仓设计 数据进入数仓之前我们就需要设计好数仓表,埋点表的数据有几个特点: 数据量非常大,可能是所有数据集…...

Spring Clound介绍
Spring Cloud 是一系列框架的集合,它利用 Spring Boot 的开发便利性简化了分布式系统(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话和集群状态)的开发。Spring Cloud 旨在为开发者…...

Redhat Linux忘记密码解决方案
1、重启系统 2、将光标移动到要启动的内核 3、按e编辑当前条目 4、将光标移动以Linux开头的行,此为内核命令行 5、在末尾添加人的rd.break 6、按ctrlx继续启动,如果发现输入的rd.break不能进入到伪系统,那么改为 rd.break consoletty0 (按ctr…...

对于子数组问题的动态规划
前言 先讲讲我对于这个问题的理解吧 当谈到解决子数组问题时,动态规划(DP)是一个强大的工具,它在处理各种算法挑战时发挥着重要作用。动态规划是一种思想,它通过将问题分解成更小的子问题并以一种递归的方式解决它们,然后利用这些…...

Instal IIS on Windows Server 2022 Datacenter
和以往版本一样,没有什么不同,So easy! WinR - ServerManager.exe 打开服务器管理器,点击【添加角色和功能】,选择自己想要的角色和功能。 一、开始之前:帮助说明,点击【下一步】;…...

飞天使-k8s知识点30-kubernetes安装1.28.0版本-使用containerd方式
文章目录 安装前准备containerd 配置内核参数优化安装nerdctl以上是所有机器全部安装开始安装初始化,这步骤容易出问题! 安装前准备 内核升级包的md5,本人已验证,只要是这个md5值,放心升级 1ea91ea41eedb35c5da12fe7030f4347 ke…...

Oracle 误操作insert delete update 数据回滚
查询回滚数据 select * from tablename AS OF TIMESTAMP TO_TIMESTAMP(2023-12-29 10:29:00,yyyy-mm-dd hh24:mi:ss) where not exists (select 1 from tablename A where A.xh tablename.xh and A.TIME tablename.TIME); TO_TIMESTAMP(2023-12-29 10:29:00,yyyy-mm-dd h…...

Linux系统(CentOS)下安装配置 Nginx 超详细图文教程
一、下载并安装 1.打开nginx官网并点击右侧的download,Nginx官网下载地址 2.选择稳定版本 我放在/usr/local/nginx/下,新建文件夹 mkdir /usr/local/nginx/ 通过xftp传输到Linux的服务器上,这里方法不过多复述。 或者如果Linux联网…...