)
文档教程后端【免费下载链接】springboot-guideSpringBoot2.0从入门到实战项目地址https://gitcode.com/gh_mirrors/sp/springboot-guide点击查看免费下载本文整理自 springboot-guide 仓库「实战项目」章节一个基于SpringBoot的在线考试系统完整讲解uexam这款前后端分离在线考试系统的技术架构、业务功能与本地部署步骤。导读uexam是一款基于 Spring Boot 2.0 的前后端分离在线考试系统同时支持 Web 端与微信小程序端界面美观、代码结构清晰、表设计规范非常适合作为学习 Spring Boot 实战、积累项目经验甚至接私活的参考项目。读完本文你将掌握用 Docker 一键搭建 PostgreSQL Redis 环境、初始化考试系统数据库、修改 Spring Boot 配置文件、启动后端并让前端Web 端/管理端顺利跑起来的完整流程以及从「建学科 → 出题目 → 组试卷 → 加学生 → 学生答题」的全链路业务操作。项目介绍uexam 是一个功能比较成熟、被重点推荐的开源在线考试系统推荐它的核心原因有三点功能成熟整体功能完整并非玩具级 demo应用场景广泛在校考试、企业内部测评、接私活交付均可复用体验好界面设计美观操作体验流畅前后端分离带来的交互质量明显更高代码与表结构规范代码整体结构清晰数据库表设计规范熟悉基本功能后很容易读懂源码。核心技术栈分层技术选型后端Spring Boot 2.0 MyBatis数据存储MySQL / PostgreSQL二选一 Redis前端Vue客户端形态Web 端 微信小程序端架构模式前后端分离双数据库版本uexam 同时提供了MySQL 和 PostgreSQL 两个数据库版本源码中分别维护对应的数据库脚本与配置。原文作者演示时采用的是PostgreSQL 版本并建议读者优先体验 PostgreSQL 版本——本文的部署演示同样以 PostgreSQL 版本为准。提示如果对 Spring Boot 整合 MyBatis 的两种主流方式全注解 / XML还不熟悉可以参考同仓库的 优雅整合 SpringBootMybatis 一文它能帮你更快理解 uexam 后端的 Dao/Service/Controller 分层。软件架构uexam 采用前后端分离的总体架构后端服务基于 Spring Boot 2.0负责业务逻辑、权限控制与数据读写支撑学生端、管理端、小程序端等所有前端调用前端应用基于 Vue 构建分为管理端xzs-admin与学生端xzs-student另有独立的微信小程序端基础设施PostgreSQL/MySQL 负责业务数据持久化Redis 承担缓存职责共同支撑后端高效运行。从部署形态看后端构建完成后会把前端静态资源内嵌到 Spring Boot 工程中一起启动默认情况下访问 8000 端口即可同时打开学生端与管理端如果希望彻底独立部署则需在前端目录中分别运行 Vue 工程对应 8001/8002 端口这就是「内嵌模式」与「前后端分离模式」两种运行方式详见下文启动章节。使用效果与核心业务流程原文强调「样式以及操作体验都是非常不错的」这是推荐该项目的很重要一个原因。整个系统的核心业务是围绕考试闭环设计的可以归纳为一条主线创建学科 → 添加题目 → 组卷添加试卷→ 添加学生 → 学生登录答题管理端操作管理端负责考试资源的维护操作顺序有严格的前置依赖需要按下面的顺序逐步进行。第一步添加学科在创建题目之前必须先创建学科。学科是题目归类的第一层维度例如演示中创建的学科是「编程」、年级为「三年级」。学科与年级的组合决定该学科下题目的归属也会影响学生账号与试卷的匹配关系。第二步添加题目进入题目管理后可以看到系统支持多种题型单选题多选题判断题填空题简答题以单选题为例添加题目时需要填写题干、选项、正确答案及所属学科等信息题目创建成功后题目列表会立即展示刚刚添加的题目方便核对。第三步添加试卷有了学科和题目之后才能添加试卷——试卷由题目组装而成因此必须先完成前两步。创建试卷时按需从题库中挑选题目、配置分值即可添加成功后试卷列表会出现新试卷。第四步添加学生管理端可以批量维护学生账号。注意学生账号要与前面创建的「学科所对应的年级」对应上即学生的年级属性必须与学科年级匹配否则学生端无法正确匹配到对应试卷。学生端体验使用管理端创建好的学生账号登录学生端主页会发现主页上多出了管理端刚刚创建的试卷点进去即可进入答题界面完成作答。这条「管理端出卷 → 学生端作答」的链路完整覆盖了一个在线考试系统的最小可用闭环也是该项目拿来即用的直接体现。后端部署PostgreSQL 版本原文以 PostgreSQL 数据库版本演示后端启动并明确表示照此步骤新手也能成功把项目跑起来。后端代码位于uexam/source/xzs下面分四步完成。第一步安装 PostgreSQL这里使用 Docker 拉取最新版 PostgreSQL 镜像前提本机已安装 Docker。1. 拉取镜像$ docker pull postgres2. 查看镜像$ docker images |grep postgres postgres latest 62473370e7ee 2 weeks ago 314MB3. 运行 PostgreSQL$ docker run -d -p 5432:5432 --name postgresql -e POSTGRES_PASSWORD123456 postgres参数说明-d后台运行容器-p 5432:5432将容器内 PostgreSQL 默认端口 5432 映射到宿主机 5432--name postgresql为容器命名便于后续管理-e POSTGRES_PASSWORD123456设置数据库超级用户postgres的密码为123456后续在application-dev.yml中要使用该密码连接数据库。第二步安装 Redis1. 拉取镜像$ docker pull redis2. 查看镜像$ docker images |grep redis3. 运行 Redis$ docker run -itd --name redis-test -p 6379:6379 redis参数说明-itd以交互式后台方式运行容器-p 6379:6379映射 Redis 默认端口 6379--name redis-test容器命名末尾redis为镜像名Redis 无密码时连接串默认即为127.0.0.1:6379。第三步创建数据库并执行数据库脚本在 PostgreSQL 中创建一个名为xzs的数据库数据库名固定为xzs执行对应的数据库脚本。脚本位于uexam/source/xzs/sql目录下按脚本文件顺序执行即可完成建表与初始化数据。第四步修改配置文件使用 IntelliJ IDEA 打开后台代码目录uexam/source/xzs修改application-dev.yml将postgresql或 mysql、redis 的服务地址改为自己本地的地址即本机 Docker 映射出的127.0.0.1:5432与127.0.0.1:6379账号密码与上一步启动容器时设置的保持一致。这里补充说明背后的 Spring Boot 机制application-dev.yml属于 Spring Boot 的多环境配置文件之一dev 开发环境项目通过激活对应 profile 来加载它文件内的数据库与 Redis 连接信息最终会注入到数据源与缓存组件的 Bean 中。关于「Spring Boot 如何从配置文件读取并绑定配置」可以参考同仓库的 Spring 如何优雅读取配置文件其中覆盖了Value与ConfigurationProperties两种绑定方式。第五步启动项目直接运行启动类XzsApplication即可不需要额外配置外部容器——Spring Boot 内置 Web 容器会自动拉起服务。启动成功后打开下面的链接即可跳转到对应的端学生系统地址http://localhost:8000/student管理端地址http://localhost:8000/admin特别注意这种启动方式下前端虽然也一并启动、可以访问但实际上是内嵌在后端项目中的。如果我们需要真正意义上的前后端分离部署则需要单独运行前端项目见下一节。前端部署Web 端小程序端的部署原文未展开演示这里以 Web 端为准。Web 端代码在uexam/source/vue目录下其中包含两个独立的前端工程xzs-admin管理端xzs-student学生端进入对应目录后分别对这两个工程执行下面两个命令。1. 下载相关依赖$ npm install2. 启动项目$ npm run serve启动完成之后打开下面的链接即可跳转到对应的端学生系统地址http://localhost:8001管理端地址http://localhost:8002此时前端走 8001/8002 端口独立运行与后端 8000 端口分离即可验证前后端分离架构下的接口调用链路。学习建议与总结从该项目中可以学到什么结合 springboot-guide 仓库的学习路径uexam 适合作为以下知识点的实战落地范本Spring Boot 2.0 工程化实践分层清晰的 Controller/Service/Dao 结构、配置文件多环境管理可对照 第一个 RestFul Web 服务 与 优雅整合 SpringBootMybatis 阅读MyBatis 实际使用多表查询、分页、事务等参考 SpringBootMybatis 多数据源配置 可以进一步理解多数据源场景前后端分离架构Vue 管理端/学生端 Spring Boot 后端的接口协作方式数据库与缓存配套PostgreSQL/MySQL Redis 的组合是考试类读多写少场景的典型选型容器化环境搭建用 Docker 快速拉起中间件环境降低本地环境搭建门槛。部署速查表步骤操作关键命令/文件1启动 PostgreSQLdocker run -d -p 5432:5432 --name postgresql -e POSTGRES_PASSWORD123456 postgres2启动 Redisdocker run -itd --name redis-test -p 6379:6379 redis3初始化数据库创建库xzs执行uexam/source/xzs/sql下脚本4修改配置uexam/source/xzs下application-dev.yml改为本地数据库/Redis 地址5启动后端运行XzsApplication访问 8000 端口前端内嵌6启动前端可选xzs-admin/xzs-student下npm installnpm run serve访问 8001/8002原文要点回顾uexam 是前后端分离的在线考试系统支持Web 端 微信小程序端提供MySQL 与 PostgreSQL 双数据库版本后端技术栈为Spring Boot 2.0 MyBatis Redis前端为Vue管理端业务顺序先建学科 → 再建题目 → 后组试卷 → 最后加学生学生年级需与学科年级匹配后端一键启动后前端静态资源内嵌直接访问 http://localhost:8000/student 与 http://localhost:8000/admin若需前后端分离部署则在uexam/source/vue下对xzs-admin、xzs-student分别执行npm install与npm run serve访问 8001/8002 端口。按照上述步骤你完全可以在一台装有 Docker 与 Node.js 的机器上把这款基于 Spring Boot 的在线考试系统从零跑起来并完整体验从出题到答题的完整考试流程。它既可以作为 Spring Boot 前后端分离实战的学习样例也可以直接改造为考试、测评类业务的基础框架属于「拿来即用」型的优质开源实战项目。赞分享文档教程后端【免费下载链接】springboot-guideSpringBoot2.0从入门到实战项目地址https://gitcode.com/gh_mirrors/sp/springboot-guide点击查看免费下载相关推荐5步掌握Spring Boot在线考试系统从零部署到实战应用5步掌握Spring Boot在线考试系统从零部署到实战应用 Spring Boot在线考试系统是一个功能完备的开源考试平台基于Spring Boot框架开人工智能大模型微调LoRACLI16步跑通Flame瓦片地图TMX加载、对象层与TileStack动效实战16步跑通Flame瓦片地图TMX加载、对象层与TileStack动效实战 凌晨两点策划把一张新关卡图丢给你同样的格子同样的怪物只是多了一堵墙。你盯着游戏开发图形学GitHub Pages完整指南5分钟创建免费静态网站GitHub Pages完整指南5分钟创建免费静态网站 想要快速搭建个人博客、技术文档或项目展示网站吗GitHub Pages是GitHub提供的免费静态网教程文档上一篇awesome-gpt-image-2-API-and-Prompts 电商实战指南用 GPT-Image-2 提示词批量产出高转化商品主图与广告下一篇Bash-it 自定义内容Custom Content完整指南五类扩展文件、git 忽略例外与 BASH_IT_CUSTOM 版本控制方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考