# graduation_project **Repository Path**: getmanymanymoney/graduation_project ## Basic Information - **Project Name**: graduation_project - **Description**: 求职平台,包含求职信息、博客、私信、后台等模块 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-12-20 - **Last Updated**: 2023-12-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # graduation_project #### 介绍 求职平台,包含求职信息、博客、私信、后台等模块 开发中--- #### 软件架构 SpringBoot + redis + Spring MVC + Spring + mybatis + xxl-job + 七牛云 master:主分支 dev:开发分支 #### 内容简介 期望:一个类似“牛客网”的求职平台,包含求职模块、博客模块(讨论区)、企业模块等多个模块 目前进度:博客模块后端开发中.... ##### 1. 登录 主体思路:使用jwt来获取token,jwt的载荷中存入 用户id 和 账号,在使用redis存入与取出数据时的key的创建时用上(仅token与用户信息存redis时使用这两个字段);通过redis 中是否存在数据来判断该token是否过期,若未过期则刷新过期时间,若已过期便重新创建token并存取缓存。 ##### 2. AOP的使用 2.1、统一日志打印(com.songxh.core.config.LogAspectConfig) 对所有使用了RestController注解的类中的所有方法作为切入点,对这些方法进行日志的打印,包含开始时间、调用方法、参数、返回值、结束时间等数据 2.2、缓存热点数据(com.songxh.core.config.CacheAspectConfig) 自定义注解Cache(com.songxh.core.annotation.Cache),对所有使用了该注解的方法作为切入点,对方法进行处理,先判断该方法的返回值是否存在缓存中,如果存在,就直接使用缓存中的数据,如果不存在,就正常走一遍方法的流程,并将返回值存入缓存,此处注意存redis的key的拼装。 ##### 3. 引入七牛云 使用七牛云来存储图片,目前用于头像的上传和获取 ##### 4、全局异常处理(com.songxh.core.handler.GlobalExceptionHandler) 使用@RestControllerAdvice和@ExceptionHandler(value = xxx.class)注解,对异常进行处理。 ##### 5、点赞开发思路 5.1、使用redis对点赞次数进行限制,限制为每半分钟最多点15次否则报异常 5.2、判断redis中是否存在该文章(当点赞后以该文章的id和用户id为key存入redis),如果存在便将其删掉(存在表示已点赞,不存在表示未点赞),并将数量减一;不存在则相反。 5.3、使用定时任务,每个一段时间便将redis中的点赞数量同步至数据库,从而避免频繁操作数据库而造成性能降低 ##### 6、使用BaseEntity基础数据基类(com.songxh.core.base.BaseEntity) 基础数据基类,与 MyMetaHandler 类搭配使用,实现 MetaObjectHandler 接口,否则便会出现赋值失败的情况