码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 仿牛客网讨论社区项目—项目总结及项目常见面试题


    1.项目中大部分的功能和技术

    整个技术是构建在SpringBoot上的,其他技术是依托于SpringBoot之上的。SpringBoot只是起到辅助的作用,降低其他技术的使用难度。整个技术的核心是Spring框架,在Spring之上使用了SpringMvc(解决了前后端请求处理交互的问题)、Spring Mybatis(可以访问数据库)、Spring Security(用于管理项目中的登录权限等)。SpringMvc、Spring Mybatis、Spring Security构成了项目的基石,项目中几乎所有请求是由他们完成的。

    2.权限模块

    应用了Spring Email和SpringMvc中的Interceptor(拦截器),其中拦截器能拦截所有请求,能解决通用的问题,涉及的面比较广、影响的请求比较多要重点关注。权限模块主要开发了注册、登录、退出、状态(在每个页面上怎么去显示登录用户的头像、用户名等)、设置(用户头像、修改密码等)、授权(不同类型的用户访问不同的功能,使用Security实现的)、会话管理(重点需要了解Cookie、session、项目中为什么不用session(主要是考虑分布式部署Session的问题)、不用session是如何解决的问题(把数据存在Redis中,使用了ThreadLocal))等功能。

    3.核心功能

    基于SpringMvc实现的首页、帖子、评论、私信的功能,异常和日志使用到了通用的技术。重点关注敏感词是怎么实现的(前缀树算法),事务也需要重点关注(什么是事务、事物的隔离级别,怎么去管理事务的)。整个模块还用到了Advice(控制器的通知,统一处理了异常)、AOP(统一记录了日志,事实上其他的很多功能(比如事务)都应用到了AOP)、Transaction(重点)。

    4.性能模块

    一些高频访问的功能(点赞、关注、统计、缓存)需要redis,redis不止能应用于这些功能还应用于统计网站的UV,活跃用户等使用了redis的两种特殊的数据类型,还使用redis用作缓存提高了性能。

    5.通知模块

    应用了消息队列的Kakfa,框架的使用非常简单,重点去了解Kafka的生产消费模式。重点回顾生产消费模型,了解能够解决哪些问题。

    6.搜索功能

    全文搜索:针对帖子能够进行全文搜索,使用了Elasticsearch,使用起来也是非常简单,重点了解其数据结构,其存数据的方式与数据库不同,关注其索引的结构(找一找相关的文章)

    7.其他功能

    排行榜、上传、服务器缓存、线程池、缓存等。使用Quartz定时任务,重点关注Caffeine怎么提高了应用的性能,还要了解其局限性。还要重点关注线程池、缓存这两个话题。

    8.面试官考察的方面

    1.职业素养

    程序员的基本素养。数据结构与算法、计算机基础等。

    2.项目经验

    技术栈的丰富度,看你来了之后能不能直接干活。

    3.钻研能力

    看看你的长板,看你熟悉的部分,一直问到你的底位置(不要贪多,钻研一个问题)。

    9.常见面试题

    主要有三个方面

    9.1.1 MySQL存储引擎

    InnoDB好在他支持事务,绝大多数时候要使用InnoDB。NDB集群式部署的时候要用到。

    9.1.2 MySQL事务

    很重要!!!!

    9.1.3 MySQL锁

    实现隔离性需要加锁

    9.1.4 MySQL索引

    9.2.1 Redis数据类型

    9.2.2 Redis过期策略

    淘汰策略

    9.2.3 Redis缓存穿透

    9.2.4 Redis缓存击穿

    9.2.5 Redis缓存雪崩

    9.2.6 分布式锁

    9.3.1 Spring IoC

    9.3.2 Spring AOP

    9.3.3 Spring MVC

    • 客户端发出请求访问服务器时,由DispatcherServlet处理。

    • DispatcherServlet调用HandlerMapping(根据访问路径找到对应Controller)。

    • HandlerMapping给DispatcherServlet返回HandlerExecutionChain对象(封装了Controller和拦截器)。

    • DispatcherServlet调用拦截器的preHandle()方法,接着调用HandlerAdapter(内部调了Controller)。

    • HandlerAdapter返回ModelAndView给DispatcherServlet,返回后调用postHandle()方法。

    • DispatcherServlet调用ViewResolver(视图解析器)。

    • ViewResolver解析View,由模板引擎渲染,(拦截器的afterCompletion()方法)返回客户端。

    至此项目完结!

    项目代码及相关资源:Ming-XMU (Yiming Zhang) · GitHub

    麻烦点点小星星!!!!!!

    CSDN下载需要积分基于SpringBoot仿牛客网讨论社区项目-Java文档类资源-CSDN下载

    从零开始—仿牛客网讨论社区项目(一)_芙蓉铁蛋的博客-CSDN博客

    从零开始—仿牛客网讨论社区项目(二)_芙蓉铁蛋的博客-CSDN博客

    从零开始—仿牛客网讨论社区项目(三)_芙蓉铁蛋的博客-CSDN博客

    从零开始—仿牛客网讨论社区项目(四)_芙蓉铁蛋的博客-CSDN博客

    从零开始—仿牛客网讨论社区项目(五)_芙蓉铁蛋的博客-CSDN博客

    从零开始—仿牛客网讨论社区项目(六)_芙蓉铁蛋的博客-CSDN博客

    仿牛客网讨论社区项目—优化网站性能_芙蓉铁蛋的博客-CSDN博客

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    Js中的 parseInt
    火山引擎边缘云:数智化项目管理助力下的业务增长引擎
    每天分享几个面试题(六)
    【Docker-k8s学习和实战】(五)深入理解docker镜像原理
    spring探秘之循环依赖的解决(一):理论基石
    Spring中有哪几种方法获取HttpSession对象
    自定义注解以及注解在反射中的应用
    input输入路径,读取图片尺寸,移动手机截图“满屏”相同尺寸图片到别的文件夹
    BSA/HSA表面修饰二甘醇酐,人血清白蛋白HSA、牛血清白蛋白BSA偶联二甘醇酐
    Spring Security(10)权限处理
  • 原文地址:https://blog.csdn.net/m0_67401545/article/details/126065879
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号