面向高校图书馆日常业务的图书管理系统:图书编目与分类、读者管理、借出/归还/续借、库存联动、逾期罚金结算与借阅统计。后端 Spring Boot 3 + Spring Data JPA 分层架构,前端 Vue 3 无需构建,默认 H2 文件库免安装、可一键切换 MySQL。论文围绕「馆藏总量 = 在借册数 + 可借册数」的库存一致性与事务设计展开。
| 编程语言 | Java 17(编译目标;JDK 20 运行正常) |
|---|---|
| 后端框架 | Spring Boot 3.2.5 + Spring Data JPA / Hibernate |
| 参数校验 | Jakarta Bean Validation |
| 构建工具 | Maven 3.6+ |
| 前端 | Vue 3(本地 vue.global.prod.js,无需 Node 构建)+ Bootstrap Icons + ECharts 5 |
| 数据库 | MySQL 8.0(交付默认 H2 文件库,免安装,可一键切换) |
| 会话与安全 | HttpSession + 自定义 AuthInterceptor;口令 SHA-256 加盐摘要 |
| 操作系统 | Windows / macOS / Linux |
| 启动方式 | 双击一键脚本,或 java -jar library-system.jar |
下面是交付包里的真实目录,共 79 个文件。只展示文件名,不含文件内容; 点击文件夹可逐层展开,看到每个模块是怎么拆分的。
点击任意一张可放大,支持左右切换(也可用键盘 ← → 键)










交付的任务书、开题报告与论文均为 Word 文档,下面是真实页面预览;点击可放大并左右切换:



能。交付包内带已构建的可执行 jar 与 H2 演示数据库,安装 JDK 17+ 后双击一键脚本即可启动(约 2.6 秒),首次启动自动建表并写入演示数据。
论文与部署口径是 MySQL 8.0,交付默认 H2 文件库是为了让系统免安装、解压即可运行。两者共用同一套 JPA 映射与业务代码,加 --spring.profiles.active=mysql 即可切换,无需改动代码。
系统约定「馆藏总量 = 在借册数 + 可借册数」:借出减一、归还加一、编辑总量时按差值同步可借数且不得小于在借数,这些变更全部收敛在带 @Transactional 的 Service 方法里,避免出现「记录写了、库存没减」。
借出前做四重校验:读者未冻结、在借未达上限(学生 5 册、教师 10 册)、库存充足、同一读者未重复借同一本未还图书;借期 30 天,最多续借 2 次,超期不可续借。
归还时按应还日与归还日计算逾期天数,以 0.2 元/天结算并写入借阅记录(可在 application.yml 的 library.fine-per-day 调整)。
本项目只有两种角色、接口数量少,HttpSession + 自定义拦截器已能覆盖需求,依赖更少、启动更快、对二次开发更友好。如需更强安全能力,把拦截器替换为 SecurityFilterChain 即可,业务代码无需改动。
书名、作者、出版社取自公共书目常识条目;ISBN、价格、馆藏量、出版日期、读者与借阅记录为程序生成(固定随机种子可复现),不对应任何真实个人,系统内不含真实读者隐私数据。
不用。前端使用本地 Vue 3 全局构建版本,浏览器直接编译模板,改完页面刷新即可,无需 npm 或打包步骤。