后台管理系统项目结构说明
📁 项目结构
book/
├── src/main/java/com/yu/book/
│ ├── admin/ # 后台管理模块
│ │ ├── controller/
│ │ │ ├── AdminController.java # 管理员登录控制器
│ │ │ └── AdminBookController.java # 书籍管理控制器
│ │ ├── service/
│ │ │ ├── AdminService.java # 管理员服务
│ │ │ └── AdminBookService.java # 书籍管理服务
│ │ ├── dto/
│ │ │ ├── AdminLoginDTO.java # 登录DTO
│ │ │ └── BookManageDTO.java # 书籍管理DTO
│ │ ├── vo/
│ │ │ ├── AdminLoginVO.java # 登录VO
│ │ │ └── AdminBookVO.java # 书籍管理VO
│ │ ├── interceptor/
│ │ │ └── AdminInterceptor.java # 权限拦截器
│ │ └── config/
│ │ └── AdminWebConfig.java # Web配置
│ └── ...
├── src/main/resources/
│ ├── db/
│ │ └── admin_schema.sql # 数据库脚本
│ └── mapper/
│ └── BookMapper.xml # 书籍Mapper XML
└── book-admin/ # 前端项目目录
├── src/main/resources/static/ # 静态资源目录
│ ├── pages/
│ │ ├── login.html # 登录页面
│ │ ├── books.html # 书籍管理页面
│ │ └── test-connection.html # 连接测试页面
│ └── utils/
│ └── api.js # API接口文件
├── package.json # npm配置文件
├── README.md # 说明文档
├── 启动指南.md # 启动指南
├── 完整功能说明.md # 功能说明
└── 快速启动.md # 快速启动
🎯 文件说明
后端文件
Controller层
AdminController.java - 管理员登录控制器
AdminBookController.java - 书籍管理控制器
Service层
AdminService.java - 管理员服务(登录验证)
AdminBookService.java - 书籍管理服务(增删改查、上架下架)
DTO和VO
AdminLoginDTO.java - 管理员登录DTO
AdminLoginVO.java - 管理员登录VO
BookManageDTO.java - 书籍管理DTO
AdminBookVO.java - 书籍管理VO
权限控制
AdminInterceptor.java - 管理员权限拦截器
AdminWebConfig.java - Web配置(注册拦截器)
前端文件
页面
login.html - 登录页面
books.html - 书籍管理页面
test-connection.html - 连接测试页面
工具类
api.js - API接口文件(统一请求方法、所有API接口)
配置文件
package.json - npm配置文件(启动脚本、依赖配置)
🔧 配置文件
package.json
{
"scripts": {
"dev": "http-server src/main/resources/static -p 8000 -o",
"start": "http-server src/main/resources/static -p 8000 -o",
"serve": "http-server src/main/resources/static -p 8000"
}
}
api.js
const BASE_URL = 'http://localhost:8081'
🚀 启动方式
方式1:使用npm(推荐)
cd book-admin
npm install
npm run dev
方式2:使用Python
cd book-admin/src/main/resources/static
python -m http.server 8000
方式3:使用Node.js
cd book-admin/src/main/resources/static
npx http-server -p 8000
📝 访问地址
- 登录页面:
http://localhost:8000/pages/login.html
- 书籍管理页面:
http://localhost:8000/pages/books.html(需要登录)
- 连接测试页面:
http://localhost:8000/pages/test-connection.html
🔐 权限控制
后端权限控制
- 所有
/api/admin/** 接口都需要token
- 登录接口
/api/admin/login 不需要token
- 权限拦截器验证token,如果无效返回401错误
前端权限控制
- 登录页面检查是否已登录,如果已登录跳转到书籍管理页面
- 书籍管理页面检查token,如果token不存在跳转到登录页面
📊 数据库表
users表
- 添加
role 字段(admin-管理员,user-普通用户)
- 默认管理员账号:admin / admin123
books表
- 包含书籍的所有字段
- 支持状态管理(status:0-下架,1-上架)
🎨 前端技术
- Vue.js 3(通过CDN引入)
- Fetch API(用于HTTP请求)
- HTML5 + CSS3
- 响应式设计
🔄 数据流
- 用户登录 → 后端验证 → 返回token
- 前端保存token → 后续请求携带token
- 后端拦截器验证token → 允许或拒绝请求
- 前端显示数据 → 用户操作 → 更新数据
📌 注意事项
- 后端服务必须启动:前端依赖后端服务(端口8081)
- 使用本地服务器:不要直接双击HTML文件
- Token管理:Token保存在localStorage中
- API地址:前端API地址配置在
utils/api.js 中
- CORS配置:后端已配置CORS,允许跨域请求