牛客网中级项目笔记

目录

1. 项目实现功能

2. 项目整体架构

2.1 架构及内容

2.2 功能:

2.3 业务逻辑

2.3.1 注册、登录、登出

2.3.2 拦截器

2.3.3 图片上传

2.3.4 发布news和comment

2.3.5 Redis实现点赞点踩

2.3.6 异步处理


1. 项目实现功能

  • 用户注册、登录
  • 资讯发布、资讯排序、咨询分类
  • 图片上传及管理
  • 资讯首页分页展示
  • 用户评论、用户点赞、用户点踩
  • 邮件通知
  • 站内信通知

2. 项目整体架构

2.1 架构及内容

  • 项目是B/S(Browser/Server,浏览器/服务器架构),使用SpringBoot
  • 数据库:Mysql
  • 持久化框架:Mybatis
  • 缓存:Redis
  • 模版: velocity
  • 项目构建:maven

 

  1. Controller:解析web请求,调用相应的Service方法处理,并返回ModelAndView或者Json格式结果;
  2. Service:业务层,包含相应的业务逻辑,调用DAO层相应的方法来操纵数据库;
  3. DAO(data access object):数据处理层,通过Mybatis框架,处理Mysql中相应的数据操作;
  4. model:项目中的实体类:News、User、Message、Comment、LoginTicket(起token的作用,注册登录的用户会发一个ticket,ticket过期/失效后,重新登录后,会重新发送一个ticket)、HostHolder(登录用户且ticket有效时,绑定一个hostHolder,将该请求与对应的user绑定,当该请求响应返回ModelAndView时,将user的信息添加到ModelAndView中)
  5. util:工具类。JedisAdapter:封装了redis一些操作(list、set相关的操作);RedisKeyUtil:返回redis中对应的key(如:like的key、dislike的key);MailSender:封装邮件相关的操作;ToutiaoUtil:封装了一些基本的操作(如:json的操作、文件加密等操作)
  6. interceptor:拦截器,拦截所有请求,判断用户登录状态,如果已登录且ticket未失效,则绑定hostholder;拦截用户消息列表页、详情页的请求(/msg/*),如果未登录,则重定向到提示登录的页面;
  7. configuration:配置类,实现了WebMvcConfigurer接口,添加拦截器;
  8. async:异步操作的包;

 

2.2 功能:

  1. 登录、注册、登出;
  2. 资讯首页:
    • 每页展示20条资讯,分页展示;
    • 每条资讯显示数据:like数量(用户赞的状态)、图片、标题、链接、评论数、发布者信息(头像、姓名)
    •  

  3. 资讯详情页:
    • 资讯的详情数据:like数量(用户赞的状态)、图片、标题、链接、评论数、发布者信息(头像、姓名)、评论详情;
    • 可以评论该资讯;
    •  

  4. 站内信列表页
    • 用户发布的资讯收到的相关信息(赞、踩、评论)
    • 显示未读信息的数量
    •  

  5. 站内信详情页
    • 显示具体的站内信
    •  

数据库中表:

  1. user
  2. news
  3. comment
  4. message
  5. login_ticket

 

2.3 业务逻辑

2.3.1 注册、登录、登出

统一的数据格式:{cod

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值