1. 项目概述与核心架构解析
最近在实验室里完成了一个基于SpringBoot+Vue3的网上租赁系统,这套前后端分离架构在实际运行中表现相当稳定。不同于传统的租赁管理软件,我们采用了更符合现代开发趋势的技术栈,后端用SpringBoot 2.7提供RESTful API,前端用Vue3组合式API开发,数据持久层采用MyBatis-Plus增强效率,数据库选用MySQL 8.0。整个系统从设计到上线耗时约三个月,期间踩过不少坑也积累了些实战经验,今天就把这个项目的技术细节和实现思路完整分享出来。
系统最核心的创新点在于租赁业务的全流程数字化管理。我们设计了用户端和管理端双入口:普通用户可以通过H5界面完成物品浏览、下单、支付等操作;管理员则拥有独立的PC端后台,能进行商品管理、订单跟踪和数据分析。这种双端分离的设计既保证了用户体验的一致性,又确保了管理功能的安全性。
技术选型背后的思考:为什么选择SpringBoot+Vue3这套组合?SpringBoot的自动配置特性大幅减少了XML配置,内嵌Tomcat简化了部署;Vue3的Composition API相比Options API更适合复杂前端状态的维护,配合TypeScript能显著提升代码健壮性。这种组合在保证开发效率的同时,也兼顾了后期维护的便利性。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 数据库设计与核心表结构
2.1 用户体系设计
用户表(user)采用纵向分表策略,将基础信息与敏感信息分离存储。主表只保留必要字段,密码存储使用BCryptPasswordEncoder进行不可逆加密,这是Spring Security推荐的做法。特别要注意的是user_status字段的设计,我们采用TINYINT而非BOOLEAN,这是为了预留更多状态位(如2表示冻结中,3表示实名认证中等)。
sql复制CREATE TABLE `user` (
`user_id` bigint NOT NULL AUTO_INCREMENT COMMENT '雪花算法ID',
`user_name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '昵称需唯一',
`user_email` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '登录账号',
`user_phone` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '绑定手机',
`user_password` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'BCrypt哈希',
`register_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`user_status` tinyint NOT NULL DEFAULT '1' COMMENT '0-禁用 1-正常',
PRIMARY KEY (`user_id`),
UNIQUE KEY `idx_username` (`user_name`),
UNIQUE KEY `idx_email` (`user_email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
2.2 租赁物品模型
物品表(rental_item)的设计有几个关键点:
