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...

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

七、总结

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

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

相关推荐
计算机毕设VX:Fegn08957 分钟前
计算机毕业设计|基于springboot + vue医院设备管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
J_liaty8 分钟前
Spring Boot整合Nacos:从入门到精通
java·spring boot·后端·nacos
明天好,会的8 分钟前
分形生成实验(五):人机协同破局--30万token揭示Actix-web状态管理的微妙边界
运维·服务器·前端
面汤放盐27 分钟前
后端系统设计文档模板
后端
C_心欲无痕38 分钟前
nginx - alias 和 root 的区别详解
运维·前端·nginx
2***d8851 小时前
SpringBoot 集成 Activiti 7 工作流引擎
java·spring boot·后端
五阿哥永琪1 小时前
Spring中的定时任务怎么用?
java·后端·spring
追逐时光者1 小时前
C#/.NET/.NET Core技术前沿周刊 | 第 65 期(2026年1.1-1.11)
后端·.net
计算机毕设VX:Fegn08951 小时前
计算机毕业设计|基于springboot + vue小型房屋租赁系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计