https://github.com/stephenqhd30/excuse-backend
借口个人图库后端
https://github.com/stephenqhd30/excuse-backend
Last synced: about 2 months ago
JSON representation
借口个人图库后端
- Host: GitHub
- URL: https://github.com/stephenqhd30/excuse-backend
- Owner: Stephenqhd30
- Created: 2025-02-03T00:31:50.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-02-16T11:37:33.000Z (4 months ago)
- Last Synced: 2025-02-16T12:25:38.493Z (4 months ago)
- Language: Java
- Size: 560 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SpringBoot 项目初始模板
> 作者:[StephenQiu](https://stephenqhd30.github.io/)
> 仅分享于 [StephenQiu个人博客](https://stephenqhd30.github.io/)### 主流框架 & 特性
- **Spring Boot 2.7.x**:简化 Spring 应用开发,提供自动化配置,内置应用服务器,帮助快速构建生产级别的 Spring 应用。
- **Spring MVC**:用于构建基于 Web 的应用,提供了强大的请求映射和视图处理功能,方便开发 RESTful 接口。
- **MyBatis + MyBatis Plus**:MyBatis 提供了 SQL 映射框架,支持自定义 SQL,MyBatis Plus 增强了 CRUD 操作并提供分页功能,提高开发效率。
- **Spring Boot 调试工具和项目处理器**:便于调试应用,简化开发环境配置,提高开发效率。
- **Spring AOP**:面向切面编程,用于日志记录、性能监控、权限校验等,增强代码的复用性和可维护性。
- **Spring Scheduler**:提供任务调度功能,用于执行定时任务,如同步数据、清理缓存等。
- **Spring 事务注解**:确保数据一致性,通过注解的方式管理事务,使代码简洁且易于维护。---
### 数据存储
- **MySQL**:关系型数据库,存储核心业务数据,支持复杂查询、事务管理等。
- **Redis**:内存数据库,用于缓存和加速数据访问,减少数据库压力,提高系统性能。
- **Elasticsearch**:分布式搜索引擎,用于实现全文搜索和数据分析功能,如快速搜索帖子。
- **腾讯云 COS**:对象存储服务,支持图片和文件的存储,便于实现文件上传和分发。---
### 工具类
- **Easy Excel**:简化 Excel 文件的读取和写入操作,适用于导入导出数据的场景。
- **Hutool**:提供一系列实用工具类,简化开发中的通用操作,如字符串处理、日期时间处理等。
- **Apache Commons Lang3**:常用的 Java 工具类库,包含各种辅助类和方法,增强 Java 标准库功能。
- **Lombok**:通过注解自动生成 Getter、Setter、构造器等,减少样板代码,提高开发效率。
- **RabbitMQ**:消息队列,用于异步任务处理和系统解耦,提高系统的扩展性和性能。
- **Redisson**:分布式解决方案,增强 Redis 的使用,如分布式锁、延时队列、信号量等,确保数据一致性。
- **Caffeine**:高性能的本地缓存,提高数据访问速度,减少数据库的访问频率。---
### 业务特性
- **Spring Session Redis**:分布式会话管理,实现分布式环境下的用户会话共享,支持分布式登录。
- **全局请求响应拦截器**:记录请求和响应日志,便于问题追踪和监控系统性能。
- **全局异常处理器**:统一管理异常,提供友好的错误提示,减少代码中的重复异常处理逻辑。
- **自定义错误码**:定义统一的错误码管理,提高 API 的可读性,便于前后端沟通。
- **封装通用响应类**:统一 API 返回格式,标准化响应数据结构。
- **Swagger + Knife4j**:生成接口文档,支持在线调试,便于接口管理和测试。
- **自定义权限注解 + 全局校验**:通过注解控制权限访问,保证用户的安全性和数据的完整性。
- **全局跨域处理**:支持跨域访问,允许不同域名的客户端访问接口,适用于前后端分离的项目。
- **长整数丢失精度解决**:解决前端 JSON 解析长整型数字时丢失精度的问题,确保数据的准确性。
- **多环境配置**:支持开发、测试、生产等多种环境配置,简化不同环境的切换,提高应用的可移植性。---
### 业务功能
- **用户管理**:实现用户的注册、登录、更新、权限管理等功能,保证用户数据的安全和完整性。
- **帖子管理**:实现帖子的创建、编辑、检索、点赞、收藏等操作,支持数据库和 Elasticsearch 检索功能。
- **帖子全量与增量同步**:通过定时任务实现 Elasticsearch 的数据同步,确保数据搜索的实时性和准确性。
- **第三方平台集成**:支持微信开放平台和微信公众号功能,包括登录、消息订阅、菜单设置等,拓展系统的功能。
- **文件上传**:支持多业务文件的上传和存储管理,提高文件处理的灵活性。---
### 单元测试
- **JUnit5**:编写和执行单元测试,提高代码质量和可靠性,保证主要业务逻辑的正确性。