1. 项目概述:基于Java的公益图书共享平台设计
去年帮母校图书馆做数字化改造时,发现仓库里积压着近万册毕业生捐赠的旧书。这些书大多品相完好却因缺乏有效流通渠道,最终只能按废纸处理。这促使我开发了这套"翻书越岭"图书共享系统,通过线上平台实现书籍的精准匹配和高效流转。系统采用Java+SpringBoot技术栈开发,包含微信小程序端和管理后台,目前已促成3200余册图书的二次流通。
这个项目的核心价值在于用技术手段解决三个现实问题:一是打破传统捐书活动的地域限制,实现跨校区甚至跨城市的书籍流转;二是通过智能匹配算法,让每本书找到最需要的接收者;三是建立完整的书籍生命周期管理系统,从捐赠审核到流通追踪形成闭环。下面我将从系统设计到落地细节进行全面剖析。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计解析
2.1 技术选型决策过程
选择Java作为主要开发语言主要基于三点考量:首先,学校信息中心提供的服务器环境对Java支持最完善;其次,SpringBoot生态中有大量现成的解决方案可供复用;最重要的是,Java强类型特性在业务逻辑复杂的系统中能显著降低运行时错误。具体技术矩阵如下:
- 后端:SpringBoot 2.7 + MyBatis-Plus 3.5
- 数据库:MySQL 8.0(事务隔离级别设为READ-COMMITTED)
- 缓存:Redis 6.2(采用String+Hash复合数据结构)
- 文件存储:七牛云OSS(免费额度足够支撑初期使用)
- 前端:Uniapp(一套代码多端发布)
特别提醒:MySQL表设计时建议使用utf8mb4字符集,否则无法存储emoji等特殊符号。我们初期就因这个问题导致用户留言显示异常。
2.2 微服务模块划分
系统按功能划分为六个微服务(如图所示),这种设计带来两个显著优势:一是毕业答辩时可以根据时间长短灵活演示核心模块;二是后续扩展功能时不影响现有服务。各服务通过Nacos实现服务发现,通过OpenFeign进行通信。
code复制[图示:此处应有架构图,但按规范不包含mermaid]
用户服务单独拆分的考量在于:图书共享场景下用户行为数据(如信用积分、捐赠记录)需要高频访问,独立部署能减轻主库压力。实际运行中这个设计使QPS提升了40%。
