# AimStudyBackend
**Repository Path**: neptu/AimStudyBackend
## Basic Information
- **Project Name**: AimStudyBackend
- **Description**: 高级编程期末项目-AimStudy
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-04-15
- **Last Updated**: 2022-06-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# AimStudyBackend
高级编程课程项目作业
环境:
- JDK1.8+
- redis
- mysql
项目依赖,结构说明(部分):
- 项目使用lombok,需要下载IDEA插件
- DAO层使用mybatis-plus
- 使用mapstruct作为entity->dto映射工具
- 为了将以上二者区分,dao层接口命名为xxxRepository,mapstruct接口命名为xxxMapper
- 两个库都有@Mapper注解,导入时需注意
- session使用spring-session+redis存储,没有redis可能会导致session失效
- 权限验证方面使用注解+拦截器AuthenticationInterceptor
进行验证 \
@AnonymousAccess
表示任何人可以访问接口 \
@RequireRole
表示需要特定角色权限可以访问接口 \
如果两者都不注解,默认只有超级管理员可访问,即@RequireRole(roles=Role.SUPER_ADMIN)
- 数据库建表语句在resources/db/
下 \
application.yaml下默认开启自动建表spring.datasource.initialization-mode: true
\
第一次启动建表后改为false
- 数据库设计(可能与代码部分不同,以代码为准):https://dbdiagram.io/d/625411b72514c979030af0ca
- controller/admin
下为超级管理员接口,主要负责维护基本信息
- 打算使用sentinel进行限流
- **
如果有更好的设计之后讨论
** 打包,部署: - maven-package - 第三方依赖在target/lib下 \ 第一次上传请上传lib目录以及jar包,之后如果依赖没有变更只需上传jar包 - 上传之后如下 ``` - lib -