项目细节

探花细节

开发环境:IDEA+Git+Maven
技术框架:SpingCloud+MyBatisPlus+Redis+MangoDB+FastDFS+Dubbo+Nacos+RabbitMQ
项目描述: 
一款主打陌生人社交的软件, 用户可以发布音视频作品,可以搜索附近的人,查看好友动态,平台还会通过大数据计算进行智能推荐,通过智能推荐匹配好友,提供了在线即时通讯功能,可以实时的与好友进行沟通

个人职责: 
配合产品部门进行业务流程梳理评审和技术可行性评估的相关工作

负责用户单点登录、完善个人信息模块开发工作
	●使用JWT加密用户信息生成token缓存Redis(对应单点登录)
负责个人中心、互动、附近推荐、评论模块开发工作
	●基于MangoDB存储用户的关注作者、粉丝、点赞作品、作品点赞数量、评论点赞数量
	●使用mongodb geo 实现地理位置查询实现搜索发现附近的人
负责图片、音视频等动态信息发布展示,IM即时通讯模块开发工作
	●使用第三方API进行图片存储、内容审核、人脸识别、即时通讯

APP端

单点登录

  • 注册

    • 上传头像(ALiFace)
    • 保存用户信息
  • 登录接口放行

    • 基于WebMvcConfigurer接口类对所有接口处理
    • addInterceptors:拦截器
    • addInterceptor:需要一个实现HandlerInterceptor接口的拦截器实例
    • addPathPatterns:用于设置拦截器的过滤路径规则;addPathPatterns("/**")对所有请求都拦截
    • excludePathPatterns:用于设置不需要拦截的过滤规则
    • 拦截器主要用途:进行用户登录状态的拦截,日志的拦截等。

    项目细节

    实现思想

    放行用户进入登录接口拦截所有后续请求交给给Interceptor进行验证
    
    • 统一JWT验证处理(重点

      • 注册登录 -->基于ThreadLocal + HandlerInterceptor拦截器的形式统一处理

        项目细节

        • 拦截器HandlerInterceptor

          项目细节

          • - HandlerInterceptor是一种动态拦截方法调用的机制;
            - 类似于Servlet 开发中的过滤器Filter,用于对处理器进行前置处理和后置处理。
            
        • ThreadLocal

          - 线程内部的存储类,赋予了线程存储数据的能力。
          - 线程内调用的方法都可以从ThreadLocal中获取同一个对象。
          - 多个线程中ThreadLocal数据相互隔离
          

          项目细节

          实现思想

          • 定义一个实现HandlerInterceptor接口统一处理Token的类
            • 重写preHandle方法,这个方法会在controller之前执行
            • 在preHandle方法中拦截获取请求头中的'Authorization'判断token是否有效
            • 如果有效就将token中的用户信息封装进ThreadLocal中,放行请求进入controller并延长token在redis中的存储时间
            • 如果无效就返回401让用户先登陆账号
  • 信息管理

    • 查看、更新用户资料
    • 设置陌生人问题
    • 设置黑名单

圈子互动

  • 个人中心

    • 发布动态(发布视频(FastDFS、SpringCache)、图片(OSS))
    • 查看个人动态
  • 动态查询

    • 查询好友动态
    • 查询推荐动态
    • 根据ID查询动态
  • 互动

    • 动态评论
    • 点赞
    • 喜欢

即时通讯

  • 通讯
    • 查看佳人、陌生人信息
    • 联系人管理(添加、删除、列表)
    • 信息通讯(图、音、视频)
  • 访客
    • 访客记录,谁看过我、查看访客列表
  • 附近的人
    • 上报定位
    • 搜索附近

后台系统

配置

  • gateway网关
  • Nacos配置中心
  • nginx负载均衡

后台系统

  • 生成验证码
  • 用户登录
  • 获取用户资料
  • 查看用户列表
  • 查看用户详情
  • 查看视频列表
  • 查看动态列表
  • 用户冻结解冻

数据统计和动态审核

  • 查询数据列表
  • 数据统计
  • 定时任务
  • 首页统计
  • 阿里云内容审核
  • 动态审核
上一篇:Spring复习(一)基础概念


下一篇:SpringBoot使用HandlerInterceptor添加跨域信息头