仿牛客网项目---项目总结

2024-03-11 19:12
文章标签 总结 项目 仿牛 客网

本文主要是介绍仿牛客网项目---项目总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本篇文章是对整个项目的一个总结。下面这张图要好好理解。

整个项目都是构建在SpringBoot之上的,所以把它画到最底下,其它技术依托在springboot之上。但是springboot并不是技术的核心,而只是起到了一个辅助的作用,它的作用仅仅是降低其它技术的使用难度,仅此而已。

那我们所有技术的核心是什么呢?我认为是Spring!因为我们所有的技术都是围绕Spring来展开的。对于重点的,我们所要关注的技术,在图中都已经画了下划线。

在Spring之上,我们用到了它的很多模块,比如SpringMVC,解决了这个前后端请求交互的问题,然后我们用到了Spring Mybatis,可以访问数据库。还用了Spring Securtiy,用来管理我们项目中安全层面的内容,管理我们项目中的权限。因为这3个技术是构建在Spring之上的,由Spring进行整合的,所以把它们画到Spring的上方。

而SpringBoot,Spring,SpringMVC,Spring Mybatis,Spring Security这5个技术放在了一块儿,意思是这些内容就是我们整个项目的基石。或者说,我们整个项目的绝大部分请求,都是用这些技术实现的,或者说它们都是基于这些技术。当然我们也用到了其它技术,那这些其它技术呢,就是不同的技术解决不同的模块,不同的问题。

权限模块

开发了注册,登录,退出功能,这些没什么好说的。然后就是状态功能,状态功能就是在每个页面上怎么去显示登录用户的用户名,头像。然后我们开发了设置功能,就是可以上传头像,修改密码。最后还开发了授权功能,就是不同类型的用户登录进来,我们让你访问不同的功能。

这些功能虽然我们开发是开发完了,但是我们必须关注一个非常重要的话题:会话管理。因为我们整个权限模块其实是构建在会话管理之上的,你想想,如果没有会话,那 后端根本记不住前端,那根本开发不出来整个项目。如果你想要一个项目有长期的交互,或者说连续的交互,要开发这样的逻辑,就必须要有会话管理。

关于会话管理,我们需要了解cookie和session,它们各自发挥什么样的作用,它们的区别是什么。

然后后来的话,我们的项目规避了session,不用session了。为什么呢?因为我们考虑到项目在分布式部署的时候,session会有一些问题。具体的问题看之前我写的博客:【cookie和session】娓娓道来cookie和session-CSDN博客

那如果我们不用session的话,怎么解决问题?我的项目中使用的是Redis,把数据存到Redis里,另外还用到了ThreadLocal。总之,对于权限管理,我们从技术上关注interceptor,从业务上关注会话管理。

核心模块

在开发完权限模块后,我们又开发了核心模块。核心模块功能比较多,包括首页,帖子,评论,私信,异常和日志。不过其实这些 功能也都差不多,也就那样吧,特别是首页,帖子,评论,私信这4个功能,都是基于SpringMVC实现的。而异常和日志则用到了一些通用的技术。

从业务角度来说,我们在开发这个模块有两个重点:敏感词和事务。对于敏感词的话,我们主要关注一下它是怎么过滤的,前缀树的结构以及相关的一些算法。对于事务的话,我们这个模块确实是解决了一些事务的问题。

当然了,这个模块肯定也是基于我们之前说的5种技术之上实现的。除了这5种技术之外,还用到了advice(控制器的通知),我们用advice来处理异常。另外我们还用到了AOP,AOP统一记录了业务层的日志。但是其实我感觉这个功能有点薄,感觉其它地方没怎么用到AOP,不过好多人说AOP很重要,这点我也是搞不懂。

性能模块

在开发完核心模块后,我们就开发了性能模块,也就是对性能要求高的模块。这里这些模块包含了社交网站中比较常见的一些功能:点赞,关注。这些功能需要高频的访问,需要高性能。那我们就利用redis开发这样的功能。当然redis肯定不止干这么一件事,它还可以干一些更高级的事,比如说可以用redis做缓存。对于这一块而言,redis肯定是最重要的,我们应该也要多关注redis这方面的内容,比如说关注一下它的数据结构,每种数据结构适合解决什么样的数据问题。

通知模块

再接下来我们又开发了通知模块。这哥模块其实就只有一个功能:系统通知。我们在这里用到了消息队列的框架:kafka。对于这个框架其实在使用的时候很简单,我们需要关注的并不是这个框架是怎么用的,这种只要你看看教程,是个人都会用,我们关键要看的是框架背后的一些通用的原则,比如说kafka的模式:生产者与消费者模式。我感觉只有理解了生产者消费者模式,你才有可能明白,在什么时候可以用到这个功能,这个功能可以帮助我们解决一个什么样的问题。当你要解决的时候,你自然会想到,哎,我可以用kafka,因为里面有一个生产者消费者模式,对解决这个问题很适用哦。

搜索模块

最后,我们开发了这个项目的搜索模块。搜索模块就一个功能:全文搜索。全文搜索的意思是我们针对帖子做一个全面的搜索,搜索帖子的各个字段。在这里我们用到了新的框架:Elasticsearch。这个框架在使用的时候也是比较简单的,我们复习时也是关注一下它的数据结构既可,也可以找一些文章看看Elasticsearch索引相关的内容。

以上就是我对于整个项目从技术到业务所做的一个总结!

这篇关于仿牛客网项目---项目总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/798786

相关文章

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文