Java牛客网社区项目——知识点&面试题
持续更新中( _)
文章目录
- Java牛客网社区项目——知识点&面试题
-
- 请简要介绍一下你的项目?
- 什么是Spring框架?
- 对Spring IoC的理解
- 什么是DAO
- Spring中关于Bean的注解
- Spring MVC是什么,是怎样的工作流程
- DispatcherServlet处理流程?
- 拦截器的作用
- 什么是SSM框架?
- 怎么实现注册功能的?
- 什么是Interceptor,在项目的哪里使用到了Interceptor?
- 使用什么技术生成验证码?
- 如何检查登陆状态
- 如何实现敏感词过滤
- 什么是Ajax,应用在项目哪些地方?
- 什么是事务,事务的四大特性。
- 怎么利用Spring实现事务管理
- 是怎样实现统一捕获异常的?
- 是怎样实现统一记录日志的?
- 什么是Redis,Redis有哪些优点?
- Redis分布式集群架构
- 怎么往Spring框架中配置Redis,介绍常见的Redis操作
- 项目中Redis的作用
- 怎样存储的点赞/关注/缓存用户数据
- 什么是消息队列
- 消息队列作为信息传递的中间件,需要注意哪些问题?
- Java中的blockingqueue,可以提供线程间的消息队列
- 什么是Kafka,有哪些功能和应用场景?
- Kafka的基础架构
- Kafka的消息模型,以及常见术语
- 在项目哪里用到了Kafka?
- 什么是ElasticSearch,存储原理,功能,特点
- 项目中哪里使用到了ES,如何使用
- 项目中使用到了SpringSecurity在哪些地方?
- 怎样统计网站UA和DAU
- 什么是Quartz,特点,专业术语,项目应用
- 什么是Caffeine,如何缓存,项目应用
请简要介绍一下你的项目?
这个项目的整体结构来源于牛客网,主要使用了Springboot、Mybatis、MySQL、Redis、Kafka、等工具。主要实现了用户的注册、登录、发帖、点赞、系统通知、按热度排序、搜索等功能。另外引入了redis数据库来提升网站的整体性能,实现了用户凭证的存取、点赞关注的功能。基于 Kafka 实现了系统通知:当用户获得点赞、评论后得到通知。利用定时任务定期计算帖子的分数,并在页面上展现热帖排行榜。
什么是Spring框架?
有很多模块组成,利用这些模块可以方便开发工作。这些模块是:核心容器(spring core)/数据访问和集成(Spring JDBC)/Web(Spring Web/MVC)/AOP(Spring Aop)/消息模块/测试模块(Spring Test)等。
对Spring IoC的理解
IoC的意思是控制反转,是一种设计思想,把需要在程序中手动创建对象的控制权交给了Spring框架。IoC的载体是IoC容器,本质是一个工厂,数据结构上来看是一个Map,用来存放着各种对象。当我们创建一个对象时,只需要配置好配置文件/注解,而不用担心对象是怎么被创建出来的。
IoC的优点:降低耦合,对象被容器管理需要两份数据:你的对象定义 + 配置文件,对象间的关系体现在配置文件,不会直接产生耦合。