spring boot3单模块项目工程搭建-下(个人开发模板)

⛰️个人主页:     蒾酒

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

🌊山高路远,行路漫漫,终有归途


目录

写在前面

上文衔接

常用依赖介绍以及整合

web组件

测试组件

样板代码生成

数据库连接器

常用工具包

面向切面编程

ORM框架

数据连接池

接口测试、文档导出

缓存中间件

参数校验

认证鉴权

基础功能完善

跨域问题解决

统一数据返回格式

自定义业务异常捕获处理

 拦截器链

写在最后


写在前面

本文介绍了springboot开发后端服务,单模块项目工程搭建。单模块搭建出完会出多模块项目搭建。坚持看完相信对你有帮助。

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

上文衔接

上文已经把基本目录结构搭建完成本文来整合一下常用依赖以及完善一些基础功能。

上文链接:

spring boot3单模块项目工程搭建-上(个人开发模板)-CSDN博客icon-default.png?t=N7T8https://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博客icon-default.png?t=N7T8https://blog.csdn.net/qq_62262918/article/details/135734561?spm=1001.2014.3001.5502

数据连接池

详情见这篇:

Spring Boot3整合Druid(监控功能)_springboot3 druid-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_62262918/article/details/135738692?spm=1001.2014.3001.5502

接口测试、文档导出

详情见这篇:

Spring Boot3整合knife4j(swagger3)_springboot3 knife4j-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_62262918/article/details/135761392?spm=1001.2014.3001.5502

缓存中间件

详情见这篇:

Spring Boot3整合Redis_springboot3整合redis-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_62262918/article/details/136067550?spm=1001.2014.3001.5502

参数校验

详情见这篇:

spring boot3参数校验基本用法_springboot3使用校验类注解-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_62262918/article/details/136180252?spm=1001.2014.3001.5502

认证鉴权

详情见这篇:

spring boot3登录开发-1(整合jwt)_spring boot 3.x 整合jwt-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_62262918/article/details/135964626?spm=1001.2014.3001.5502

基础功能完善

跨域问题解决

详情见这篇:

spring boot3解决跨域的几种方式_springboot3 跨域-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_62262918/article/details/136334332?spm=1001.2014.3001.5502

统一数据返回格式

详情见这篇:

Spring Boot3统一结果封装_spring boot结果集封装-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_62262918/article/details/136075039?spm=1001.2014.3001.5502

自定义业务异常捕获处理

详情见这篇:

Spring Boot3自定义异常及全局异常捕获_springboot是如何自定义异常并捕获的-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_62262918/article/details/136110267?spm=1001.2014.3001.5502

 拦截器链

spring boot3token拦截器链的设计与实现_springboot3 拦截器-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_62262918/article/details/136143401?spm=1001.2014.3001.5502

写在最后

spring boot3单模块项目工程搭建常用依赖整合和基础功能完善到这里就结束了,任何问题评论区或私信讨论,欢迎指正。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浅涉ROS世界中的坐标系及其他

声明&#xff1a;文中图片素材均采用了其他博主文章&#xff08;文末参考来源&#xff09;&#xff0c;如有侵权或不妥&#xff08;确有不妥和不安&#xff0c;奈何苦于佳图难觅&#xff09;&#xff0c;还望告知&#xff0c;立即删除&#xff01; 坐标系统 ROS中的…

【Stable Diffusion系列】(一):AI绘画本地部署教程

目录 一、总览 二、本地部署 1、安装cuda 2、安装python 3、安装git 4、方法一 1&#xff09;获取安装包 2&#xff09;update 3&#xff09;run 5、方法二 1&#xff09;git clone 2&#xff09;双击webui-user.bat 3&#xff09;更新 6、设置启动参数 7、…

【linux】进程地址被占用

在强制关闭一个udp程序后&#xff0c;重启该程序报错&#xff1a; bind error: Address already in use 查找并关闭占用端口的进程&#xff1a; 首先&#xff0c;确定哪个进程占用了目标端口。在Linux系统中&#xff0c;可以使用以下命令&#xff1a; netstat -tulnp | grep …

ArcGIS无法开始编辑TIN!开始编辑TIN显示灰色

ArcGIS无法开始编辑TIN&#xff01;开始编辑TIN显示灰色&#xff1f; 解决方案&#xff01; 1、确认自定义——扩展模块中空间分析、3D分析模块勾选。 2、确认以上后&#xff0c;还是不能编辑的话&#xff0c;我们可以调出 3D分析分析工具条&#xff0c;你就会发现。TIN编辑工…

Paddle 1.8 与 Paddle 2.0 API 映射表

安装2.6的paddlepaddle之后总是报fluid的错误&#xff0c;查询得知这个接口已经弃用了&#xff0c;但是一直找不到替换接口&#xff0c;偶然查询报错信息的时候找到了映射表&#xff0c;转存一下。 Paddle 1.8 与 Paddle 2.0 API 映射表

在React函数组件中使用错误边界和errorElement进行错误处理

在React 18中,函数组件可以使用两种方式来处理错误: 使用 ErrorBoundary ErrorBoundary 是一种基于类的组件,可以捕获其子组件树中的任何 JavaScript 错误,并记录这些错误、渲染备用 UI 而不是冻结的组件树。 在函数组件中使用 ErrorBoundary,需要先创建一个基于类的 ErrorB…

SAM在低阶自适应航空土地覆盖分类中的应用2024.01

GEOSCIENCE AND REMOTE SENSING LETTERS 2024.01 提出了一种新的语义分割模型&#xff0c;该模型结合了SAM的图像编码器和低秩自适应方法(LoRA)&#xff0c;用于航空图像的特征提取和微调。我们还使用了一个辅助CNN编码器来促进下游适应&#xff0c;并补充ViT编码器在密集视觉…

探索visionOS基础知识:创建应用程序图标

每当您使用不同的 Apple 平台时,您都会注意到必须学习如何为其设计本机应用程序图标。无论是 iOS、macOS 还是 tvOS,每个平台都有适合该特定平台的独特规范。 VisionOS 要求创建美观、三维、独特的应用程序图标,使主视图上感觉熟悉且逼真。 对于与 VisionOS 兼容的现有 …

js 连接快手打印组件并实现打印

快手打印组件文档&#xff1a; https://docs.qingque.cn/d/home/eZQA41D2h9LGUFaD26bC07e–?identityIdEmukFTnlEF#sectionh.kgnfm4rjc89m 快手打印组件下载&#xff1a; https://docs.qingque.cn/d/home/eZQBMOMSj4mJ5D7Xplofq-p4Y?identityIdEmukFTnlEF 快手打印数据格式&…

在ubuntu上搭建nexus私有仓库(指定版本以及jdk!)

前言 本来以为搭建一个nexus随随便便就好了&#xff0c;但是遇到了最新版本根本没办法在jdk17下面正常运行—起码我调了一下不知道怎么运行&#xff0c;我才知道。。。不升级版本其实是很有道理的。 这一篇是最新版本的尝试&#xff1a; 在ubuntu上搭建nexus私有仓库[失败草稿…

图片hover放大效果

实现效果&#xff1a;一张图片&#xff0c;鼠标放上去时&#xff0c;出现放大效果 非常简单&#xff0c;两个关键词&#xff1a;hover和transform 对应的代码结构如下图 框架背景&#xff1a; Tips: transform结合不同的参数可以实现元素的位移、旋转、缩放 如果有任何疑问或…

针对icon报错

针对上篇文章生成图标链接中图标报错 C# winfrom应用程序添加图标-CSDN博客 问题&#xff1a;参数“picture”必须是可用作Icon的参数 原因&#xff1a;生成的ico图标类型不匹配 解决方法&#xff1a; 更改导出的ico类型

国产3D自研技术如何突围?眸瑞科技给3D建设、管理带来全新模式

眸瑞科技是全球领先的数字孪生引擎技术及服务提供商&#xff0c;它专注于让一切3D模型在全网多端轻量化处理与展示&#xff0c;为行业数字化转型升级与数字孪生应用提供成套的国产自研3D可视化技术、产品与服务。 引言 眸瑞科技是全球领先的数字孪生引擎技术及服务提供商&…

绿色便携方式安装apache+mysql+tomcat+php集成环境并提供控制面板

绿色便携方式安装带控制面板的ApacheMariaDBTomcatPHP集成环境 目录 绿色便携方式安装带控制面板的ApacheMariaDBTomcatPHP集成环境[TOC](目录) 前言一、XAMPP二、安装和使用1.安装2.使用 三、可能的错误1、检查端口占用2、修改端口 前言 安装集成环境往往配置复杂&#xff0c…

DHCP原理和配置

1、DHCP原理 &#xff08;1&#xff09;什么是DHCP DHCP(Dynamic HostConfiguration Protocol,动态主机配置协议)&#xff1a;给网络内的客户机自动分配IP地址由internet工作任务小组设计开发口专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议DHCP采用的是UDP作为传输…

Day 21 LAMP架构和DNS域名

LAMP架构简介 针对不同的后端开发语言&#xff0c;使用不同的架构&#xff0c;后端项目开发语言有&#xff1a;Java&#xff0c;PHP&#xff0c;Python...... 针对于PHP项目 LAMP架构 LinuxApacheMysql/MariadbPhp LNMP架构 LinuxNginxMysql/MariadbPhp 针对于Java项目 w…

百度安全多篇议题入选Blackhat Asia以硬技术发现“芯”问题

Blackhat Asia 2024于4月中旬在新加坡隆重举行。此次大会聚集了业界最杰出的信息安全专业人士和研究者&#xff0c;为参会人员提供了安全领域最新的研究成果和发展趋势。在本次大会上&#xff0c;百度安全共有三篇技术议题被大会收录&#xff0c;主要围绕自动驾驶控制器安全、跨…

C++ 泛型编程篇(一) 模板初阶

目录 〇、为什么需要模板&#xff1f; 一、函数模板 1. 函数模板概念 2. 函数模板格式 3. 函数模板的原理 4. 隐式实例化和显示实例化 5. 无法推导模板类型的情况 a. 只设置一个模板&#xff0c;但两个不同的参数类型使用模板 b. 函数体中使用了模板 6. 同名普通函数和模板函…

字符串型漏洞注入

SQL注入是一种严重的安全漏洞&#xff0c;它允许攻击者在不受控制的情况下执行任意的SQL代码。这种攻击通常发生在Web应用程序没有正确验证或转义用户输入的情况下。字符串型注入是SQL注入的一种形式&#xff0c;它涉及到在应用程序的输入框中插入恶意的字符串&#xff0c;以干…

K8S--常用的命令

原文网址&#xff1a;K8S--常用的命令-CSDN博客 简介 本文介绍K8S常用的命令。 官网 简略用法&#xff1a;https://kubernetes.io/zh-cn/docs/reference/kubectl/ 详细用法&#xff08;有示例&#xff09;&#xff1a;https://kubernetes.io/docs/reference/generated/kub…
最新文章