littlebot
Published on 2025-04-09 / 3 Visits
0

【源码】基于Spring Boot的在线编程评判系统

项目简介

本项目是基于Spring Boot框架构建的在线编程评判系统,致力于打造一个高效、安全的平台,让用户能够提交代码并实现自动评判。系统整合了多种主流框架和工具,支持多种编程语言评判,具备用户管理、题目管理、代码提交、自动评判、分页查询、权限控制等丰富功能。

项目的主要特性和功能

主流框架与特性

  • Spring Boot 2.7.x:快速开发框架,简化配置与部署。
  • Spring MVC:用于构建Web应用的MVC框架。
  • MyBatis & MyBatis Plus:数据访问框架,支持分页查询。
  • Spring AOP:面向切面编程,用于权限校验和日志记录。
  • Spring Scheduler:定时任务调度,用于定时同步数据。
  • Spring 事务注解:简化事务管理。

数据存储

  • MySQL:关系型数据库,存储用户、题目、提交记录等数据。
  • Redis:内存数据库,用于分布式登录和缓存。
  • Elasticsearch:搜索引擎,快速检索题目和提交记录。
  • 腾讯云COS:对象存储服务,存储用户上传文件。

工具类

  • Easy Excel:处理Excel文件读写。
  • Hutool:Java工具库,提供丰富工具方法。
  • Apache Commons Lang3:常用工具类库。
  • Lombok:简化Java代码,自动生成getter、setter等方法。

业务特性

  • 分布式登录:使用Spring Session Redis实现。
  • 全局请求响应拦截器:记录请求和响应日志。
  • 全局异常处理器:统一处理系统异常。
  • 自定义错误码:提供详细错误信息。
  • 封装通用响应类:统一API响应格式。
  • Swagger & Knife4j:API文档生成工具。
  • 自定义权限注解:实现细粒度权限控制。
  • 全局跨域处理:支持跨域请求。
  • 长整数丢失精度解决:防止JSON序列化精度丢失。
  • 多环境配置:支持开发、测试、生产等多环境。

业务功能

  • 用户管理:涵盖注册、登录、注销、更新、检索、权限管理等。
  • 题目管理:包括创建、删除、编辑、更新、数据库检索、ES灵活检索等。
  • 代码提交与评判:支持用户提交代码,系统自动评判并返回结果。
  • 帖子管理:包含创建、删除、编辑、更新、点赞、收藏等。
  • 定时任务:支持定时同步数据到Elasticsearch。
  • 微信开放平台登录:支持通过微信开放平台登录。
  • 微信公众号订阅:支持订阅、消息收发、菜单设置等。

安装使用步骤

1. 环境准备

  • 安装Java 8或更高版本。
  • 安装MySQL数据库,创建相应数据库和表。
  • 安装Redis,配置Redis连接。
  • 安装Elasticsearch,配置Elasticsearch连接。
  • 配置腾讯云COS,获取访问密钥和存储桶信息。

2. 配置文件

  • 修改application.yml文件,配置数据库连接信息: yaml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/my_db username: root password: 123456
  • 配置Redis连接信息: yaml spring: redis: database: 1 host: localhost port: 6379 timeout: 5000 password: 123456
  • 配置Elasticsearch连接信息: yaml spring: elasticsearch: uris: http://localhost:9200 username: root password: 123456

3. 启动项目

  • 在项目根目录下运行以下命令启动项目: bash mvn spring-boot:run
  • 访问http://localhost:8101/api/doc.html,查看API文档并进行在线调试。

4. 数据库初始化

  • 执行sql/create_table.sql中的SQL语句,自动创建所需的库表。

5. 配置定时任务

  • 找到定时任务类FullSyncPostToEsIncSyncPostToEs,取消注释@Component注解,启动定时任务。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】