跳转至

Java 后端开发路线

@LYS编辑此页面


前置要求


恭喜你!选择了 Java 后端开发路线,你的未来指定是:

Image title

在学习 Java 后端开发之前,首先你要有足够扎实的语言基础,语法功底是整个 Java 后端开发的基石。

如果你还不能独立的编写一个能流畅运行的 Java 程序(比如最简单的一个图书管理系统),说明连基本功都没有掌握牢固,建议你重新温习一遍 JavaSE 的内容。

此外,你还需要掌握基本的代码调试技能(断点调试等),基本的排查错误并独立解决的能力。而对于 Java8 - 17 的新特性简单了解即可。

⚠️ 下面也许会出现许多技术名词,但是不要担心,随着学习深入,你会逐渐了解。⚠️


基础入门


这一部分主要是针对 JavaWeb 及其相关内容的学习:

  • 计算机网络相关:TCP 通信、HTTP 协议、Cookie 等。
  • 数据库基础:MySQL 数据库、JDBC 框架、Mybatis 框架。
  • 前端基础:HTML 页面、CSS 样式、JavaScript 脚本。
  • 后端基础:Tomcat 服务器、Servlet 基础。
  • 其他框架和技术:Maven、Lombok、JUL、Thymeleaf。

你可能会有如下疑问:

  • 我只学习后端,为什么还要学前端?
  • 后端基础内容为什么占比这么少?
  • 出现了这么多框架都要掌握吗?要如何学习?

别急,下面一一解答:

  • 在这一部分,我们学习到的是 JSP 开发(一种在 HTML 中嵌入 Java 代码的技术,用于生成动态 Web 页面),因此需要学习部分前端基础内容。
  • 这一阶段,我们需要注重于与后端开发相关的技术和框架,例如数据库基础、计算机网络、前端基础等。这些知识和技术也是后端开发中非常重要的一部分。因此在后端基础中,我们只学习 Tomcat 服务器、Servlet 基础这两个重要内容。
  • 对于上述出现的框架和技术,我们需要重点学习 MySQL、Mybatis、Maven、Lombok 即可,其他技术了解即可,因为 JSP 开发并不是 Java 后端开发最核心的内容。

完成这一部分的学习,基本就具备了独立开发简单网站的能力,实现包括连接数据库获取用户信息、实现简单数据库交互业务、网站登录等功能,以及使用一些比较方便的框架,还有通过 Maven 管理项目依赖等,这些技能是 JavaEE 开发的基础。


核心部分


现在主流的 Java 后端开发,借助的是极为成熟的 Spring 系列框架,这是一组基于Java的开源框架,用于构建企业级应用程序(JavaEE)。

因此,我们这一部分主要是围绕 Spring 系列框架学习并进行开发:

  • Spring 系列框架:Spring、SpringMVC、SpringSecurity、SpringBoot、SpringDataJPA
  • 中间件:Redis 数据库。
  • 操作系统:Linux
  • 版本控制:Git

通过这一阶段的学习,你就能基本掌握前后端分离架构的 web 项目开发,独立完成项目管理,以及合理使用中间件来实现各种功能。

在你完成这一阶段的学习后,一些计算机设计类竞赛如中国大学生计算机设计大赛、软件杯等都可以尝试去参加。


微服务


微服务架构的引入,可以使得你的项目整体解耦,实现真正的模块化,使应用程序更易于扩展,在高并发领域也有重要应用。

  • SpringCloud组件:Eureka、Loadbalaner、Hystrix、Gateway、Config、Stream、Bus
  • SpringCloud Alibaba 组件:Nacos、Sentinel、Seata
  • 其他中间件:ShardingJDB、消息队列
  • 数据库:MySQL集群方案、Redis集群方案
  • 登录校验:OAuth2.0、单点登录、JWT 校验

经过这一阶段的学习,我们的技术栈将会再次上升一个层次。到了这一个阶段,你基本可以独立去开发一些企业级别的商业项目。


Q&A


JavaWeb 已经过时了,还用学习吗?


随着近年来出现了越来越多的后端开发框架和技术选择,JSP 开发在现在市场开发所占的比重在逐年缩小,但是仍要学习。

相对于目前比较流行的前后端分离开发的模式,JSP 的高耦合性、维护难度大等缺点显然缺乏足够的竞争力,即便如此,仍有较多企业在使用和维护老旧的 JSP 项目,甚至也是大部分学校教学的重点。

我们目前学习 JavaWeb,主要是为了学习和了解计算机网络和后端基础以及 MySQL、Mybatis、Maven 等,这些在之后的学习中仍是十分重要的。


可以跳过 SSM 直接学 SpringBoot 吗?


SSM(Spring + Spring MVC + MyBatis)部分是后续学习 SpringBoot 等高级框架的基础,如果你直接跳过基础去学,大概率学完只会 Curd,而不懂其中的原理。

如果你真的十分着急(距离毕业不到一年想找工作),你可以跳过这一阶段,但是 Spring 的核心思想的学习仍是必不可少的。

能够支撑你走的更远的,一定是扎实的基础。SpringBoot 只是基于 SSM 的脚手架而已,核心原理仍是 SSM。换言之,当你丢掉 SpringBoot 之后就没有办法进行开发的话,你就什么也不是了。

评论