一个完整的springboot项目,我们还需要做什么

devtools/2024/10/11 13:26:26/

文章目录

  • 一 从0创建Srpingboot项目
    • 1.1 启动springboot项目
    • 1.2 导入必要的依赖
  • 二、还缺什么
    • 2.1 统一异常捕获
    • 2.2 统一MVC返回
    • 2.3 数据分层
    • 2.4 连接数据库模块
    • 2.5 放置常量和工具类
    • 2.6 基础controller、基础entity、query查询类
    • 2.7 为了方便处理异常,一般还可以入参打印、出参打印
    • 2.8 集成swagger方便接口查看调用
  • 三、完整项目还缺什么
    • 3.1 鉴权模块
    • 3.2 数据缓存模块
    • 3.3 图片处理模块
    • 3.3 定时模块
    • 3.4 代码生成模块
  • 四、后记

本人从事java web项目开发多年,跟大家分享一下一些心得,原创不易,希望对大家有所帮助

一 从0创建Srpingboot项目

我们从0开始创建Springboot,一般都需要选择Springboot的版本,因为Springboot的版本一年好几个更新,我们通常在 https://start.spring.io 上,选择我们要的版本,以及开启启动的start依赖,即可把一个springboot项目搭建起来

1.1 启动springboot项目

在 https://start.spring.io 选择需要的依赖,确定之后就是一个最基础的springboot项目了。
我们用IDEA打开项目,启动之后,就可以使用了。

现在springboot版本已经更新到3.x以上了,旧的springboot版本已经在这个里面找不到了

虽然官方推荐用最新的版本,但是对于springcloud的适配非常不友好,尤其是jdk必须更新到17,也是让新手接触springboot感觉比较困惑的地方

我个人建议,刚刚开始,还是用官方推荐用的最新版本。到工作后,最好用公司统一的版本,一般公司如果非特殊,是不会随便更新公司的版本的

1.2 导入必要的依赖

Springboot如果想要单体使用,一般只需要导入mvc模块就行了

如果使用Springcloud之后,还可以选择需要导入特定Springcloud依赖

二、还缺什么

很久之前,在使用springboot的时候,一直强调,约定大于配置,也就是说,有些约定俗成的东西,就尽量不要去违背,违背了虽然也没有关系,但是会导致大部分情况下,这些代码只有你自己能进行维护,其他人阅读起来很是困难。

以下我列举了一些大部分项目需要统一的跟大家分享,希望阅读的人可以从中得到启发,增进项目的高效使用。

2.1 统一异常捕获

使用springboot统一异常捕获

2.2 统一MVC返回

封装JsonResult

2.3 数据分层

controller - service - mapper

如果是mybatis-plus还可以考虑使用 face 层

2.4 连接数据库模块

一般选择 mybatis-plus

2.5 放置常量和工具类

创建文件夹

constant 
util

2.6 基础controller、基础entity、query查询类

为了复用性更强

2.7 为了方便处理异常,一般还可以入参打印、出参打印

使用切面的方式处理

2.8 集成swagger方便接口查看调用

方便接口的查看,以及跟前端进行信息交互

三、完整项目还缺什么

3.1 鉴权模块

shiro
security

3.2 数据缓存模块

引用中间件redis

3.3 图片处理模块

引用中间件

存本地路径
存数据库
存nginx
存minio
存mongodb

3.3 定时模块

springboot内置的cron
quart

3.4 代码生成模块

为了方便使用,一般都会集成一个代码生成模块
freemarker

四、后记

一个相对完整的项目,是需要考虑很多东西的,虽然每个项目各有各的不同,但是大部分都是有共通的地方,也就说大家所说的,大同小异。
从0开始搭建springboot项目,对于大部分人还是有一点点难度的,对于了解其中原理,或查看其他人项目,又或者解决bug,都是大有裨益的。

如果觉得太麻烦,又想快速搭建一个后端项目,可以直接在github/gitee 参考开源项目来使用,例如以下项目:

1 Guns
2 pig
3 RuoYi
4 Jeecg-boot
5 iBase4j

但是大部分情况下,如果直接使用开源项目,会发现很多东西就会很臃肿,还是有一些要注意的地方,注意得好,才开源更好的驾驭这个框架。

所以建议使用开源项目的时候,一定要去对应的官网仔细进行阅读,在里面进行答疑解惑,才是用好脚手架的必经之路。


http://www.ppmy.cn/devtools/45734.html

相关文章

python 删除pdf 空白页

环境 python 3.10 PyPDF2 3.0.1 安装 pip install PyPDF2流程 将空白页和内容页读取出来,看看内部结构有什么不同以此为依据,遍历整个PDF 文件,标记处有内容的页面,写入到另外一个PDF文件。 python 代码 # 每一个页都是一个…

前端组件业务数据选择功能优雅写法

1. 业务场景 后台管理在实际业务中,经常可见的功能为:在当前的页面中从其他列表中选择数据。 例如,在一个商品活动列表页面中 需要选择配置的商品。 2. 遇到问题 从代码划分的角度来说,每个业务列表代码首先分散开来&#xff0…

【LeetCode算法】第94题:二叉树的中序遍历

目录 一、题目描述 二、初次解答 三、官方解法 四、总结 一、题目描述 二、初次解答 1. 思路:二叉树的中序遍历。访问二叉树的左子树,再访问二叉树的根节点,最后访问二叉树的右叉树。 2. 代码: void order(struct TreeNode* r…

Python | A + B问题|||

if语句:if、elif、else 关系运算符 逻辑运算符:and(&&)、or(||)、not(!) break退出循环 continue:只能出现在for、while循环内部,用法…

顶底背离的终极猜想和运用

这几天圈内都在传底蓓离什么的。作为严肃的量化自媒体,我们就不跟着吃这波瓜了。不过,我一直很关注技术指标的顶背离和底背离,一直在追问它的成因如何,以及如何预测。 底蓓离把我目光再次吸引到这个领域来,于是突然有…

电脑死机问题排查

情况描述:2024年6月2日下午16:04分电脑突然花屏死机,此情况之前遇到过三次,认为是腾讯会议录屏和系统自带录屏软件冲突导致。 报错信息:应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址…

【TB作品】MSP430F149,ADC采集,光强GY-30,DS18B20温度采集

功能 读取了GY-30 DS18B20 P6.0ADC P6.1ADC 显示到了LCD12864 硬件 //GY30 //SCL–P1.0 //SDA–P1.1 //VCC–3.3V //GND–GND //ADDR–不接 //DS18B20 //DATA–P1.6 //VCC–3.3V //GND–GND //ADC //DATA–P1.6 //P6.0 P6.1 ADC输入口 部分程序 #include <msp430.h>…

Docker 快速更改容器的重启策略(Restart Policies)以及重启策略详解

目录 1. 使用 docker update 命令2. 在启动容器时指定重启策略3. 在 Docker Compose 文件中指定重启策略4. 总结 官方文档&#xff1a;Start containers automatically 1. 使用 docker update 命令 Docker 提供了 docker update 命令&#xff0c;可以在容器运行时更改其重启策…