完整Java后端学习路径

阶段一:后端开发基础

1.Java基础

学习Java基础语法,理解封装、继承、多态等概念。学习常见的集合,I0流,反射机制,泛型,异常,网络编程。

进阶:多线程,Lambda表达式和Stream流,JVM内存结构。

推荐教程:B站-老杜Java教程

2.MySQL

学习基本的CRUD语句,JDBC API,子查询,索引的使用。

进阶:数据库三范式,索引的原理(B+树),事务的特性和隔离级别,InnoDB的MVCC实现机制。

推荐教程:尚硅谷/黑马程序员MySQL

3.计算机网络基础

了解TCP/IP的三次握手。学习HTTP协议,了解其报文结构与不同请求方式(GET, POST等)的区别,及不同响应码代表的意思。弄明白「一次请求到响应」的全过程。学习HTTPS协议的「对称与与非对称加密」,「数字签名与与数字证书」,Hash算法。

推荐教程:韩立刚-计算机网络

4.操作系统基础

开发需要对「进程与线程」的概念有一定了解。理解线程的生命周期,并发的概念,以及多线程并发时会遇到哪些问题。

推荐教程:王道考验-操作系统

5.Java Web

学习 Tomcat,JSON,Servlet, Filter,

Session,Cookie,Ajax异步请求,RESTful接口规范,JSP。

JSP是很老的技术了,了解一下即可,其他部分务必好好学习,Java Web是后面一切的根基。此部分不需要敲太多代码,了解原理即可。

推荐教程:动力节点-Java Web

  1. Git & Maven

学习 Git的基本命令,版本控制和分支管理,这是所有程序员必备技能。学习Maven项目的构建,打包,父子项目依赖关系以及依赖的版本管理。

推荐教程:狂神说-Git&动力节点- Maven实战入门

阶段二:后端框架

1.Spring & Spring MVC & Mybatis框架

了解MVC架构的理念,学习Spring框架的依赖注入(DI)和面向切片编程(AOP)的思想, Spring MVC的架构模式以及Mybatis持久层框架的如何完成数据库查询和实体类映射。这部分主要是了解框架思想,代码部分跟着 case敲一遍即可,不需要写一个完整的项目,因为很少企业在用SSM了。

进阶:有时间可以了解下Spring Data JPA,有的公司会用它替代Mybatis。

推荐教程:狂神说-SSM系列

  1. Spring Boot框架

了解完整的企业级Spring Boot项目开发的流程。学习Spring Boot的配置管理和注解使用,前后端分离思想,日志管理,监控管理,多环境开发以及项目打包部署等,最好跟着 B站做一个完整的项目。

进阶:学习Bean的创建方式,依赖管理,自动配置原理以及底层注解。

推荐教程:黑马程序员Spring Boot教程对新手比较友好;尚硅谷雷神版适合有基础的人,他开头就会讲很多底层原理。

阶段三:前端基础

1 .HTML & CSS & JavaScript

后端开发无论是工作还是学习,偶尔写前端都会是不可避免的一件事,需要了解HTML三件套的基本使用,实操使用前端给后端发送Ajax请求。

推荐教程:菜鸟教程-HTML指南

2.Vue3

学会使用Vue脚手架,引用elementUI组件, axios请求后端,路由管理,Vuex等。不需要太深入,可以写出样式与后端交互即可。

推荐教程:菜鸟教程-Vue指南

3.Nginx

其实Nginx属于中间件,但是在Vue中会用到。学习反向代理的概念以及Nginx配置文件的一些参数。

推荐教程:菜鸟教程-Nginx指南

阶段四:中间件

1.Redis

非关系型数据库,无论是系统性能优化还是鉴权都离不开它。主要了解CAP概念,学习 Redis的数据结构和基本命令,发布订阅模式,Redis事务,Redis持久化操作(RDB&AOF),主从复制,哨兵模式,Redis集群搭建。

进阶:了解缓存雪崩,缓存穿透,缓存击穿及对应解决方案。使用Redis限流(令牌桶算法等)

推荐教程:尚硅谷周阳-Redis7教程

2.RabbitMQ/ Kafka

消息中间件,两者选一学习即可。RabbitMQ易上手,而KafKa性能更好,用于大型分布式系统。这一阶段要学习消息队列的「点对点模式」与「发布订阅模式」,分布式事务2PC与3PC,这两种消息队列在Spring Boot的API调用。

推荐教程:尚硅谷-PabbitMQ & Kafka

阶段五:分布式与运维

1 .Linux操作系统

学习Linux目录结构,常用的命令以及vim编辑器。理解Linux中的用户权限和组的概念。能够熟练地在Linux中安装软件及部署jar包。 Linux服务器在阿里云,腾讯云等平台可以购买,新用户只要几十块一年。

推荐教程:菜鸟教程-Linux指南

2 .Docker容器化技术

学会在Linux拉取docker镜像和创建容器,了解 docker network和volume等知识,并能够编写dockerfile去构建镜像。学习docker- compose文件的写法及命令,然后做容器编排。

推荐教程:尚硅谷周阳-docker

3.CI/CD持续集成

因为我们每次构建完项目要手动构建和部署,这太麻烦了,所以我们需要持续集成工具来做这些繁琐的步骤。CI/CD工具有Jekins和Gitlab-runner等。学会在Linux中搭建持续集成环境,结合dockerfile,docker- compose.yml完成持续集成。

推荐教程:CSDN搜索持续集成案例

4.Spring Cloud框架

Spring全家桶中用于构建微服务的框架。学习微服务概念,拆分微服务的原则,

Nacos注册中心配置管理,Feign远程调用, Gateway服务网关的使用,过滤器的使用, Sentinel流控组件以及Seate分布式事务。

推荐教程:尚硅谷周阳-Spring Cloud教程

阶段六:安全与鉴权

1.JWT

JWT有三段组成:header,payload和signature。header指定签名算法和token类型。payload中可放一些不敏感的数据,如 userid,过期时间等。第三部分由「第一部分使用base64URL加密+第一部分使用

base64URL加密+密钥」进行签名。需要学会Spring Boot中JWT API的使用。

推荐教程:编程不良人-JWT认证原理

2.Spring Security

用于认证和授权的框架。认证:查看用户是否有访问系统的权限;授权:控制谁可以访问哪些资源。学习Spring Security中一些封装的类和方法,如Authentication类, UserDetails类,authenticate()方法,

loadUserByUsername()方法等。使用 Spring Security +Redis+JWT做出能够认证和授权的系统。

推荐教程:三更早堂-Spring Security教程

相关推荐
又是重名了7 小时前
导出新方案-poi和easyexcel融合
java·poi·easyexcel
uup7 小时前
看似简单的空指针 —— 包装类自动拆箱陷阱
java
天天摸鱼的java工程师7 小时前
Docker+K8s 部署微服务:从搭建到运维的全流程指南(Java 老鸟实战版)
java·后端
l1t7 小时前
Javascript引擎node bun deno比较
开发语言·javascript·算法·ecmascript·bun·精确覆盖·teris
用户8307196840827 小时前
Apache Tomcat 体系结构深度解析
java·tomcat
管理大亨7 小时前
企业级ELK:从日志收集到业务驱动
java·大数据·网络·数据库·elk·elasticsearch
sang_xb7 小时前
Android 系统的权限管理最佳实践
android·开发语言
信看7 小时前
树莓派CAN(FD) 测试
开发语言·python
BBB努力学习程序设计7 小时前
Java并发包深度解析:从AQS到线程池的完全指南
java