JAVA后端学习路线
路线总览
javase->Mysql->计算机网络->JavaWeb->Maven(1)->Spring->SpringMVC->Mybatis->Maven(2)
->Linux->Git->SpringBoot->MyBatisPlus->Redis->JVM->JUC->Nginx->Docker->RabbitMQ->SpringCloud
->项目(谷粒商城/仿牛客网)
方法论
每天刷leetcode
看视频(写demo…)->记笔记->看javaGuide->温习
公众号
欢迎大家关注我的微信公众号:程序员城南,回复关键字获取相应资料链接
项目
谷粒商城(2~3月)
推荐理由
自学的同学做项目不要被B站或抖音一些蹭流量的人带偏了,说什么谷粒商城项目烂大街了,项目结构很烂,项目时间太久了等等。在我看来,谷粒商城依旧是最适合自学的同学学习的项目,没有之一。主要理由如下
-
谷粒商城播放量高,意味着相关的文档齐全,笔记资料csdn也很多,遇到bug也可以相对快的找到解决方法,不至于刚开始就被bug打倒放弃项目
-
谷粒商城没有烂大街,烂大街的是那些只学了基础篇和少量高级篇就去找工作的人。基础篇几乎就是基础的crud,搭建项目框架,根本没有可以和面试官深入聊的技术点
-
谷粒商城在使用某个中间件之前,雷神会带着大学大致学习一下,比如高级篇的ES,我之前没学过ES,跟着雷神学完之后,把谷粒商城全文检索服务做完之后对es的认识加深了
-
谷粒商城确实项目结构不是很完善,比如基础篇的依赖管理等等。但是它几乎可以把我们所学的所有中间串联起来的项目
-
Nginx相信大家能做到项目也都学过,但是谷粒商城真的是把我Nginx的基础配置教会了
-
Elasticsearch用来做全文检索服务(面试加分项)
-
redis相信大家也都学过,但是具体怎么用估计在做项目之前也都很迷茫。在谷粒商城中
- redis做分布式缓存,用来存储三级分类数据(这一点其实有点问题,面试官问到过,其实放在Mysql数据库中可能更好)
- 在Oauth认证服务中,账号注册,阿里云短信服务发送验证码进行注册,在redis中存放,有效期10分钟,前端提交的数据,验证码进行比对,相等则删除redis中的验证码(令牌机制,一个验证码只能用一次)
- 分布式session,将所有的session都保存在redis中,这样session作用域扩大之后,所有的模块都可以获取到session
-
ThreadLocal用户身份鉴别,将用户信息存放在ThreadLocal中进行共享
-
RabbitMQ,谷粒商城真的是RabbitMQ最好的应用
-
线程池进行业务方法的异步处理,提高效率(商品详情页)
-
学习建议
- 一定要做笔记,尤其是高级篇,因为不做笔记到时候面试之前,记不住的。后期我会把我自己的笔记整理出来发给大家。(给大家看看我的笔记)
- 电脑配置16G往上,不然到高级篇之后带不动
- 高级篇学习起来相对比较顺利,基础篇的坑真的很多(我在配node.js的时候版本,还有python版本搞了两三天),大家遇到坑可以去评论区看看
- 基础篇不重要,面试的时候几乎都是问高级篇的,所以大家高级篇务必学完。
- 集群部署篇时间不够可以不学,要求的电脑配置也很高
常见面试题
- rabbitmq用在哪里
- redis用在哪里
- sentinel
- 社交登录
关注微信公众号回复:学习路线。获取整个学习路线的文档。