# library-management-system
**Repository Path**: sunjulee/library-management-system
## Basic Information
- **Project Name**: library-management-system
- **Description**: Spring Boot + Vue 3 图书管理系统
🎨 现代化UI:基于 Element Plus 的美观界面设计
🔐 安全认证:JWT + Spring Security 无状态认证
👥 多角色支持:读者、图书管理员、系统管理员三种角色
📊 数据可视化:ECharts 实现借阅统计图表
📱 响应式设计:适配不同屏幕尺寸
🔄 前后端分离:RESTful API 设计,易于扩展和维护
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 0
- **Created**: 2026-03-24
- **Last Updated**: 2026-05-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 📚 图书管理系统
[](https://spring.io/projects/spring-boot)
[](https://vuejs.org/)
[](https://element-plus.org/)
[](https://www.mysql.com/)
[](LICENSE)
> 一个基于 Spring Boot + Vue 3 的现代化图书管理系统,采用前后端分离架构,支持多角色权限管理。
## ✨ 项目特色
- 🎨 **现代化UI**:基于 Element Plus 的美观界面设计
- 🔐 **安全认证**:JWT + Spring Security 实现无状态认证
- 👥 **多角色支持**:读者、图书管理员、系统管理员三种角色
- 📊 **数据可视化**:ECharts 实现借阅统计图表
- 📱 **响应式设计**:适配不同屏幕尺寸
- 🔄 **前后端分离**:RESTful API 设计,易于扩展和维护
## 🛠️ 技术栈
### 后端技术
| 技术 | 版本 | 说明 |
|------|------|------|
| JDK | 1.8 | Java开发环境 |
| Spring Boot | 2.6.13 | 应用框架 |
| Spring Security | 5.6 | 安全框架 |
| JWT | 0.11.5 | 身份认证 |
| MyBatis Plus | 3.5.2 | ORM框架 |
| MySQL | 5.7 | 数据库 |
| EasyExcel | 3.1.1 | Excel处理 |
| Maven | 3.6+ | 构建工具 |
### 前端技术
| 技术 | 版本 | 说明 |
|------|------|------|
| Vue.js | 3.3.4 | 前端框架 |
| Vue Router | 4.2.4 | 路由管理 |
| Vuex | 4.1.0 | 状态管理 |
| Element Plus | 2.3.14 | UI组件库 |
| ECharts | 5.4.3 | 图表库 |
| Axios | 1.5.0 | HTTP客户端 |
| Sass | 1.97.3 | CSS预处理器 |
## 📸 系统截图
### 登录页面
系统支持三种角色登录:读者、图书管理员、系统管理员
### 读者端
- 公告查看
- 图书查看
- 借阅记录
- 违章记录
- 我的留言
- 借阅规则
- 借阅证申请
- 个人信息
### 图书管理员端
- 借书
- 还书
- 借阅记录管理
- 公告发布
- 读者留言回复
- 借阅证申请审批
- 违章处理
- 个人信息
### 系统管理员端
- 图书信息管理
- 分类管理
- 借阅证管理
- 借阅规则管理
- 借阅查询
- 图书管理员
- 借阅统计
## 🚀 快速开始
### 环境要求
- JDK 1.8+
- MySQL 5.7+
- Node.js 16+
- Maven 3.6+
### 1️⃣ 数据库配置
```bash
# 1. 安装 MySQL 5.7
# 2. 创建数据库
create database library_db character set utf8mb4 collate utf8mb4_unicode_ci;
# 3. 执行初始化脚本
# 使用 MySQL 客户端或图形化工具执行:
# library-backend/library_db.sql
```
### 2️⃣ 后端启动
```bash
# 进入后端目录
cd library-backend
# 编译项目
mvn clean install
# 启动服务
mvn spring-boot:run
```
后端服务将运行在 http://localhost:8081
### 3️⃣ 前端启动
```bash
# 进入前端目录
cd library-frontend
# 安装依赖
npm install
# 启动开发服务器
npm run serve
```
前端服务将运行在 http://localhost:8080
### 4️⃣ 访问系统
打开浏览器访问:http://localhost:8080
## 👤 默认账号
| 角色 | 用户名 | 密码 | 说明 |
|------|--------|------|------|
| 读者 | reader01~reader15 | 123456 | 可注册新账号 |
| 图书管理员 | librarian1、librarian2 | 123456 | 处理借阅业务 |
| 系统管理员 | admin | 123456 | 系统管理权限 |
## 📁 项目结构
```
library-management-system/
├── 📂 library-backend/ # 后端项目
│ ├── 📂 src/main/java/com/library/
│ │ ├── 📂 common/ # 通用类(结果封装、分页)
│ │ ├── 📂 config/ # 配置类
│ │ ├── 📂 controller/ # 控制器层(REST API)
│ │ ├── 📂 service/ # 业务逻辑层
│ │ ├── 📂 mapper/ # 数据访问层(MyBatis)
│ │ ├── 📂 entity/ # 实体类
│ │ ├── 📂 dto/ # 数据传输对象
│ │ ├── 📂 security/ # 安全相关(JWT、权限)
│ │ └── 📄 LibraryApplication.java # 启动类
│ ├── 📂 src/main/resources/
│ │ ├── 📂 db/
│ │ │ └── 📄 schema.sql # 数据库初始化脚本
│ │ └── 📄 application.yml # 应用配置文件
│ └── 📄 pom.xml # Maven配置
│
├── 📂 library-frontend/ # 前端项目
│ ├── 📂 src/
│ │ ├── 📂 views/ # 页面组件
│ │ │ ├── 📂 user/ # 读者端页面
│ │ │ ├── 📂 librarian/ # 图书管理员端页面
│ │ │ └── 📂 admin/ # 系统管理员端页面
│ │ ├── 📂 router/ # 路由配置
│ │ ├── 📂 store/ # Vuex状态管理
│ │ ├── 📂 utils/ # 工具类
│ │ ├── 📂 components/ # 公共组件
│ │ ├── 📂 styles/ # 样式文件
│ │ ├── 📄 App.vue # 根组件
│ │ └── 📄 main.js # 入口文件
│ ├── 📄 package.json # npm配置
│ └── 📄 vue.config.js # Vue配置
│
└── 📄 README.md # 项目说明
```
## 📚 功能模块详解
### 读者模块
- 📢 **公告查看**:浏览图书馆最新公告
- 🔍 **图书查询**:支持按书名、作者、分类模糊搜索
- 📖 **借阅记录**:查看个人历史借阅和当前借阅状态
- ⚠️ **违章查询**:查看逾期、损坏等违章记录
- 💬 **留言反馈**:向图书馆提交意见或建议
- 📋 **规借阅则**:了解借阅规则和注意事项
- 📖 **申请借阅证**:先图书管理员申请借阅证
- 👤 **个人信息**:管理个人资料和密码
### 图书管理员模块
- 📤 **借书处理**:验证读者身份,办理借书手续
- 📥 **还书处理**:办理还书,自动计算逾期费用
- 📋 **借阅记录**:查询所有读者的借阅记录
- 📢 **公告管理**:发布、编辑、删除图书馆公告
- 💬 **留言管理**:查看和回复读者留言
- 📖 **借阅证审批**:借阅证审批管理
- ⚠️ **违章处理**:记录和处理读者违章行为
- 👤 **个人信息**:管理个人资料和密码
### 系统管理员模块
- 📚 **图书管理**:图书信息的增删改查
- 🏷️ **分类管理**:图书分类的增删改查
- 🎫 **借阅证管理**:管理读者借阅证,设置借阅规则
- 📋 **借阅规则**:配置不同读者类型的借阅规则
- 📋 **借阅查询**:查询书籍借出信息
- 👤 **图书管理员**:管理图书管理员
- 📊 **借阅统计**:按时间维度统计借阅数据,可视化展示
## ⚙️ 配置说明
### 后端配置 (application.yml)
```yaml
server:
port: 8081 # 服务端口
spring:
datasource:
url: jdbc:mysql://localhost:3306/library_db?useUnicode=true&characterEncoding=utf-8
username: root # 修改为你的数据库用户名
password: 123456 # 修改为你的数据库密码
driver-class-name: com.mysql.cj.jdbc.Driver
jwt:
secret: your-secret-key # JWT密钥
expiration: 86400000 # Token过期时间(毫秒)
```
### 前端配置 (vue.config.js)
```javascript
module.exports = {
devServer: {
port: 8080, // 前端端口
proxy: {
'/api': {
target: 'http://localhost:8081', // 后端地址
changeOrigin: true
}
}
}
}
```
---
> 💡 **提示**:如果这个项目对你有帮助,请给个 ⭐ Star 支持一下!