# 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 - .jar - AimStudy.jar - application.yaml application.yaml用于覆盖开发配置: server: port: spring: datasource: url: jdbc:mysql://localhost:3306/aim_study?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Hongkong username: password: initialization-mode: initialization-mode用于初始化数据库(自动建表),第二次以后启动需要改为never ``` ``` java -jar AimStudy.jar ```