# forum **Repository Path**: wangjunyi6526/forum ## Basic Information - **Project Name**: forum - **Description**: 基于Spring的论坛系统,前后端分离 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-03-15 - **Last Updated**: 2026-07-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # forum ## 介绍 forum 是一个基于 Spring Boot 的轻量级论坛系统,采用前后端分离架构设计。后端通过 RESTful API 提供数据服务,前端集成静态页面(HTML+Tabler CSS)便于快速部署与演示。系统覆盖用户管理、文章发布、板块分类、回复互动、站内信交流等核心功能模块,适合作为学习或中小型社区的原型项目。 ## 软件架构 ### 后端技术栈 - **核心框架**:Spring Boot 2.x(简化配置,自动依赖管理) - **持久层**:MyBatis(灵活的 SQL 映射,注解+XML 双重配置) - **数据库**:MySQL 5.7+(关系型数据库,存储用户、文章、评论等结构化数据) - **API 文档**:Springfox Swagger 3.x(自动生成接口文档,支持在线测试) - **工具类**:MD5 加密、UUID 生成、字符串处理(`MD5Util`、`UUIDUtil`、`StringUtil`) ### 前端技术栈 - **页面框架**:HTML5 + Tabler CSS 2.x(现代化的响应式 UI 组件库) - **交互脚本**:jQuery(简化 DOM 操作与 AJAX 通信) - **样式扩展**:Tabler 配套插件(图表、日期选择器、文件上传等) ### 项目结构 ``` forum/ ├── src/main/java/com/bite/forum/ # 后端核心代码 │ ├── controller/ # 控制器层(处理 HTTP 请求) │ ├── service/ # 业务逻辑层 │ ├── dao/ # 数据访问层(MyBatis Mapper) │ ├── model/ # 实体类(对应数据库表) │ ├── utils/ # 工具类(MD5、UUID、字符串处理) │ ├── config/ # 配置类(MyBatis、Swagger、拦截器) │ ├── interceptor/ # 拦截器(登录验证) │ └── exception/ # 全局异常处理 ├── src/main/resources/ # 资源文件 │ ├── application.yml # 配置文件(数据库、端口、日志) │ ├── forum_sql.sql # 数据库初始化脚本 │ ├── mapper/ # MyBatis XML 映射文件 │ └── static/ # 前端静态资源(HTML、CSS、JS) └── pom.xml # Maven 项目配置 ``` ## 功能模块 ### 1. 用户管理 - **注册/登录**:支持用户名+密码注册登录,密码经 MD5 加密存储 - **个人信息**:查看/修改昵称、性别、手机号、邮箱、个人简介 - **密码修改**:原密码验证后修改新密码 - **头像上传**:支持图片上传并保存至本地路径 ### 2. 文章管理 - **发布文章**:选择板块,输入标题和内容发布帖子 - **编辑/删除**:仅帖子作者可编辑或删除自己的文章 - **点赞功能**:支持点赞帖子(点赞数实时更新) - **列表查询**:按板块/用户筛选文章列表,按时间/热度排序 - **详情展示**:查看文章完整内容、作者信息、关联板块 ### 3. 板块管理 - **首页板块**:展示论坛所有板块(如“技术交流”“生活分享”) - **板块信息**:查看板块名称、发帖数量、排序规则 ### 4. 回复互动 - **回复文章**:对帖子进行评论,支持多级回复 - **回复列表**:查看帖子的所有评论,按时间倒序排列 ### 5. 站内信 - **发送消息**:用户间私密交流,支持文字内容 - **未读提醒**:统计未读消息数量,红色角标提示 - **消息管理**:查看全部消息、标记已读、回复消息 ## 安装教程 ### 1. 环境准备 - **Java**:安装 JDK 8+(推荐 JDK 11) - **数据库**:安装 MySQL 5.7+,并创建数据库 `forum` - **工具**:安装 Maven 3.x 或使用 IDE 内置 Maven ### 2. 数据库初始化 执行数据库脚本创建表结构: ```bash mysql -u root -p forum < src/main/resources/forum_sql.sql ``` ### 3. 配置数据库连接 修改 `src/main/resources/application.yml`,调整数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/forum?useUnicode=true&characterEncoding=utf8 username: your_username # 替换为实际用户名 password: your_password # 替换为实际密码 ``` ### 4. 启动项目 - **命令行启动**:在项目根目录执行 `mvn spring-boot:run` - **IDE 启动**:运行 `ForumApplication.java` 的 `main` 方法 ## 使用说明 ### 1. 访问系统 - **首页**:[http://localhost:8080](http://localhost:8080) (查看板块列表) - **API 文档**:[http://localhost:8080/swagger-ui.html](http://localhost:8080/swagger-ui.html) (查看接口详情) ### 2. 核心接口示例 - **注册**:`POST /user/register?username=xxx&password=xxx&nickname=xxx` - **登录**:`POST /user/login?username=xxx&password=xxx` - **发布文章**:`POST /article/create?boardId=1&title=xxx&content=xxx` - **点赞文章**:`POST /article/thumbsUp?id=1` - **发送站内信**:`POST /message/send?receiveUserId=2&content=xxx` ### 3. 前端页面 系统提供以下静态页面(位于 `src/main/resources/static/`): - `article.html`:创建新文章 - `article_list.html`:文章列表页 - `article_edit.html`:编辑文章 - `details.html`:文章详情及回复 ## 参与贡献 1. **Fork 本仓库**(https://gitee.com/wangjunyi6526/forum) 2. **新建分支**:创建 `Feat_xxx` 分支(如 `Feat_user_module`) 3. **提交代码**:完成开发后提交变更 4. **发起 PR**:向主仓库提交 Pull Request,等待审核 ## 注意事项 1. **生产环境建议**:前端页面仅用于功能演示,生产环境请将前端分离部署(如 Vue/React + Nginx) 2. **配置修改**: - 头像上传路径需配置 `pic.local-path` 为可写目录 - 登录跳转地址可通过 `zhike-forum.login.url` 修改 3. **权限控制**:部分接口(如发布文章、点赞)需登录后访问,未登录用户会被重定向至登录页 --- 如需了解接口详情或遇到问题,可通过 [Gitee Issues](https://gitee.com/wangjunyi6526/forum/issues) 反馈。