仿牛客网论坛项目

项目本身

项目的背景,解决了一个什么样的问题

这个项目的整体结构来源于牛客网,主要使用了Springboot、Mybatis、MySQL、Redis、Kafka、等工具。主要实现了用户的注册、登录、发帖、点赞、系统通知、按热度排序、搜索等功能。另外引入了redis数据库来提升网站的整体性能,实现了用户凭证的存取、点赞关注的功能。基于 Kafka 实现了系统通知:当用户获得点赞、评论后得到通知。利用定时任务定期计算帖子的分数,并在页面上展现热帖排行榜。

项目中的职责是什么

1、完成软件系统代码的实现,编写代码注释和开发文档; 2、辅助进行系统的功能定义,程序设计; 3、根据设计文档或需求说明完成代码编写,调试,测试和维护;

项目中使用的技术栈是什么?项目架构是怎么样的?使用微服务了嘛?

服务器分为表现层/业务层/数据层,其中Spring MVC是工作在表现层,作用是接收/解析用户发送的请求,调用对应的业务类,根据业务类返回的结果(ModelAndView),调用view进行视图渲染,并将渲染后的View返回给请求者。具体分为以下8步:

  1. 客户端(浏览器)发送请求给前端处理器(DispatcherServlet)(发送请求,响应结果);

  2. DispatcherServlet根据请求信息调用HandlerMapping,查找到对应的Handler;

  3. 查找到对应的Handler(也就是Controller)后,由HandlerAdapter适配器处理;

  4. HandlerAdapter根据Handler来调用真正的Controller;

  5. Controller进行业务处理,返回ModelAndView对象,Model是数据对象,View是逻辑上的View;

  6. ViewResolver根据逻辑view找到实际view;

  7. DispatcherServlet把Model传给view进行视图渲染,然后返回给请求者。

mvc三层架构:

  1. C - Controller:控制器。接受用户请求,调用 Model 处理,然后选择合适的View给客户。

  2. M - Model:模型。业务处理模型,接受Controller的调遣,处理业务,处理数据。

  3. V - View:视图。返回给客户看的结果。

对Spring IoC的理解:

IoC的意思是控制反转,是一种设计思想,把需要在程序中手动创建对象的控制权交给了Spring框架。IoC的载体是IoC容器,本质是一个工厂,数据结构上来看是一个Map,用来存放着各种对象。当我们创建一个对象时,只需要配置好配置文件/注解,而不用担心对象是怎么被创建出来的。

IoC的优点:降低耦合,对象被容器管理需要两份数据:你的对象定义 + 配置文件,对象间的关系体现在配置文件,不会直接产生耦合。

项目是怎么搭建的,机器配置是怎么样的,有做分布式嘛?

项目的具体功能细节,如论坛项目中的评论如何存储?怎么展示所有的评论?

user_id对应的是发评论的用户,entity_type是指评论的类型,论坛部分,有两种类型,对帖子的评论和对评论的评论,为了方便区分,对评论的评论我们成为回复,entity_id对应回复的实体的id,target_id也就是回复的对象,这个主要是在回复的时候需要显示回复的谁。

    private int id;
    private int userId;
    pr
  • 15
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值