Day 19:02. 基于 SpringBoot4 开发后台管理系统-项目初始化

一、前言

类似的优秀的开源产品有很多 Ruoyi, el-admin 等等,如果你已经在这个行业工作了 3-5 年,我相信你手上也有自己的后台管理系统模版,哪怕他可能只是个半成品。

程序员必经之路:搭博客,写框架,然后不断地推倒重来。😄

俺也一样,github.com/Caoshenyang... EZ-ADMINEZ 取自 "easy" 谐音,我想要整一个简单易用的后台管理系统,基础功能都已经实现了,我平时的一些 MVP , 就是用这个来快速实现的。这次我将在这个基础上升级为 springboot 4 的版本,并且进一步完善他。

二、创建项目

创建成功后,启动项目

三、一些小调整

3.1. 将配置文件改成 yaml 格式

个人行为,我还是比较习惯 yaml 格式的写法,你也可以不改

3.2. 修改 pom 文件

  • 删除了一些不用的空标签,模版自带的
  • 配置阿里云仓库镜像

文章后面我会贴出完整的 pom 文件,所以这里我就不展示代码了。

四、ORM 框架选择

ORM 框架有很多,主流的像 mybatisJPA,以及国产的 Jfinal 等等。这里我就不一一列举了,我主要就在 MyBatisSpring Data JPA 中进行选择。

工作中,这两个我都用过,所以从功能以及生态来说,都很完善。

  • MyBatisMyBatis-Plus 增强工具,使用起来非常方便,一些简单的增删改查甚至不用写任何 SQL,有完善的插件体系,基本涵盖了所有日常开发中的场景。
  • JPA 作为 Spring 官方首选的持久层解决方案,深度集成于 Spring 生态,通过 Repository 抽象层提供高度声明式的数据访问方式,同样很强大。

具体细节对比,网上有很多专门做对比的文章,我就不细说了,这里我列出了核心的几点比较。

维度 MyBatis + MyBatis-Plus JPA + Spring Data JPA
核心理念 SQL映射框架 对象关系映射(ORM)框架
技术定位 "Sql is Code" 理念的增强实现 符合 JPA 标准的官方 ORM 方案
核心优势 SQL 控制力 + 开发效率的完美平衡 声明式编程 + 深度框架集成
关键差异 拥抱SQL,认为SQL是强大的资产。 隐藏SQL,认为数据库细节不应污染业务代码。
适用场景 需要精细控制 SQL 的复杂业务系统 快速迭代、领域驱动的新项目

这里我选择 Spring Data JPA

  • 首先第一点契合 Spring Boot 4
  • 其次作为后台管理项目,业务简单;
  • 最后一点,因为现在大多数都是 MyBatis-Plus,我想再试试 Spring Data JPA (我还是 2018 年的时候公司项目用过)。

五、数据库选择

这里的数据库指的是关系型数据库,基本上就 MySQLPostgreSQL 二选一,这里因为我选择的是 Spring Data JPA 标准的 ORM 框架,其实对于数据库的切换也是很方便的,所以其实无论选择哪个,后续切换的成本其实都不高。这里我选择 PostgreSQL ,因为我没用过,对!就是这个原因。我早就听闻 PostgreSQL 的强大,并且据说在某些方面已经超越了 MySQL,成为了现在开发的首选数据库了。

出于好奇,以及对于知识探索的渴望,我决定使用 PostgreSQL

这里列出一下我搜集到的核心对比

特性 MySQL PostgreSQL
核心理念 "简单、快速、实用",偏向互联网应用 "功能强大、标准、严谨",偏向传统企业级应用
SQL标准兼容 遵循标准,但更注重实用性和灵活性 严格遵循SQL标准,兼容性最好
架构特点 进程模型(旧版)/ 线程模型(新版) 进程模型

六、Spring Data JPA + PostgreSQL 实现一个简单的增删改查

这里我本来是想将每一步都写出来的,怎么引入依赖,有哪些版本变更,后面发现,太繁琐了,有点啰嗦,好像又回到了多年前那种博客模式,所以思索再三,我将这一节的内容全部删除了。下面是完整的代码,后续也会一直更新,github.com/Caoshenyang...

我也不太喜欢在博客里搞一堆代码,看起来就很枯燥。

七、总结

在从技术选型到项目创建的过程中,我思考了很多:是稳妥地沿用自己熟悉的技术栈,走一遍已经验证过的老路?还是勇敢尝试不太熟悉的新方案,借机突破自己的舒适区?最终,我选择了后者。

这也正是我想传递的一个理念:不要被所谓"技术栈"束缚住手脚。不要因为没接触过就望而却步。我们首先是程序员,而不是仅仅被定义为"前端"或"后端"。在面对具体业务需求时,我们才是项目的主宰者。要对自己有充分的信心,像搭积木一样从容构建系统,根据实际需要选择合适的组件或工具,而不是被技术标签所限制。

相关推荐
DogDaoDao15 小时前
Windows 下 Git 报错:`touch` 无法识别 —— 原因分析与 7 种解决方案(从入门到精通)
windows·git·程序员·npm·powershell·cmd·touch
Ting-yu15 小时前
Spring AI Alibaba零基础速成(5) ---- Memory(记忆)
java·人工智能·后端·spring
月落归舟15 小时前
一文掌握Spring AOP:从入门到底层原理
java·后端·spring
@菜菜_达15 小时前
jquery.inputmask插件介绍
前端·javascript·jquery
QuZhengRong15 小时前
【Luck-Report】缓存
java·前端·后端·vue·excel
jiayong2315 小时前
前端面试题库 - 浏览器与网络篇
前端·网络·面试
Csvn15 小时前
小程序开发:微信小程序与 uni-app 实战指南
前端
XiYang-DING16 小时前
【Spring】SpringMVC
java·后端·spring
想学习java初学者16 小时前
SpringBoot整合GS1编码解码
java·spring boot·后端
日月云棠16 小时前
2 快速入门实战指南
java·后端