- 对于改善 YTUOJ 架构的一种尝试,基于Spring Boot + Docker,将系统分成核心业务模块、判题模块、代码沙箱模块。根据业务流程设计用户表、题目表、提交表。结合 Java Runtime对象实现原生 Java 代码沙箱。通过Docker Java 库,测试了更安全的 Docker 代码沙箱
| .mvn/wrapper | ||
| doc | ||
| sql | ||
| src | ||
| .DS_Store | ||
| .gitignore | ||
| Dockerfile | ||
| mvnw | ||
| mvnw.cmd | ||
| pom.xml | ||
| README.md | ||
SpringBoot 项目初始模板
基于 Java SpringBoot 的项目初始模板,整合了常用框架和主流业务的示例代码。
只需 1 分钟即可完成内容网站的后端!!!大家还可以在此基础上快速开发自己的项目。
[toc]
模板特点
主流框架 & 特性
- Spring Boot 2.7.x
- Spring MVC
- MyBatis + MyBatis Plus 数据访问(开启分页)
- Spring Boot 调试工具和项目处理器
- Spring AOP 切面编程
- Spring Scheduler 定时任务
- Spring 事务注解
数据存储
- MySQL 数据库
工具类
- Easy Excel 表格处理
- Hutool 工具库
- Gson 解析库
- Apache Commons Lang3 工具类
- Lombok 注解
业务特性
- Spring Session Redis 分布式登录
- 全局请求响应拦截器(记录日志)
- 全局异常处理器
- 自定义错误码
- 封装通用响应类
- Swagger + Knife4j 接口文档
- 自定义权限注解 + 全局校验
- 全局跨域处理
- 长整数丢失精度解决
- 多环境配置
业务功能
- 提供示例 SQL(用户、帖子、帖子点赞、帖子收藏表)
- 用户登录、注册、注销、更新、检索、权限管理
- 帖子创建、删除、编辑、更新、数据库检索、ES 灵活检索
- 帖子点赞、取消点赞
- 帖子收藏、取消收藏、检索已收藏帖子
- 帖子全量同步 ES、增量同步 ES 定时任务
- 支持微信开放平台登录
- 支持微信公众号订阅、收发消息、设置菜单
- 支持分业务的文件上传
单元测试
- JUnit5 单元测试
- 示例单元测试类
架构设计
- 合理分层
快速上手
所有需要修改的地方都标记了
todo
MySQL 数据库
1)修改 application.yml 的数据库配置为你自己的:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/my_db
username: root
password: 123456
2)执行 sql/create_table.sql 中的数据库语句,自动创建库表
3)启动项目,访问 http://localhost:8101/api/doc.html 即可打开接口文档,不需要写前端就能在线调试接口了~
