本文不光是针对自学的小伙伴,还有一些计算机专业的同学,未来想要以Java为就业方向进行自学。但是不了解Java学到什么程度可以就业?甚至是不知道Mybatis是应该什么时候学习,想要高效学Java不知道可以不可以跳过SSM框架,直接学习SpringBoot,今天这篇文章,我们就来解决大家在Java学习中遇到的这些困难。
一、学习路线图
先来分享黑马程序员2023年整理的简略版学习路线图:
- 入门:Java SE基础 → Java Web(含数据库+H5+js+vue)
- 中级:Maven → Git → SSM框架 → MybatisPlus → Spring Boot→ 《传智健康》项目实战 → 《瑞吉外卖》项目实战
- 进阶:Spring Cloud(微服务开发,学这一套就够了) 也可以按照以下技术点学:
Dubbo → Zookeeper → RabbitMQ → RocketMQ → Docker → Redis → MongoDB → 搜索技术Elasticsearch → MySQL进阶 - 项目:《SaaSiHRM》企业服务 → 《好客租房》生活服务 → 权限管理一体化解决方案 → 短信网关平台
- 面试:Java大厂面试专题课 → Java百度地图
以上技术,足以支撑大家找到一份好的Java开发工作,如果想工作后再提升,页面底部还有30+套课程。
工作后可以再学习提升的技术:
JDK8-15新特性 → 编程强化 → 数据库强化 → 安全框架SpringSecurity → 报表技术 → 模板引擎VelocityTools → 工作流Activiti7……
看到这里有点懵了?Java自学要学这么多内容,学几年也学不完怎么办,下面给大家解释一下我们的学习路线图。
二、解释学习路线图
不管各位小伙伴是自学还是应届想要以Java就业,就目前(2023年)企业招聘需求来说,大家需要学到SpringBoot,并且独立完成一个项目即可。
这里对能跑通一个SpringBoot项目的定义是,项目运行启动之后能够通过url请求拿到结果,发出url请求之后,这个请求经过了哪些模块,是怎么访问的数据库,然后返回,处理中出现了异常怎么办?这些流程都是要明白的。
下面说下大家困惑很多的学习顺序问题
首先是Mybatis的学习顺序,在学习路线图中已经说了。Mybatis是基于Java持久层框架,可以将SQL语句和Java代码进行分离,让大家更注重于业务逻辑的实现。还有一些高级功能,可以帮助我们管理和优化数据库操作。 所以放在web和数据库后面学就可以了。
上述学习路线图,只要掌握到中级阶段的技术,就目前企业需求来说已经可以找到一份Java开发工作了。⚠️⚠️但是不建议学习Spring boot之前跳过SSM等内容。
❗SpringBoot中自动化配置、条件注解、Java配置等东西都基于Spring的。Java配置是Spring3开始提供的,条件注解也是Spring中的内容,很多内容都是Spring就有的,只不过在SpringBoot更好用。
换句话说,❗你以为你在学SpringBoot相关的内容,实际上学的还是Spring里面的东西。那既然如此,还不如老老实实学Spring。
要知道,各个领域都会面临一些问题,学了一些比较优秀的封装框架之后,还有没有必要学底层?当然有必要,因为底层的东西可以让我们更深刻的理解目前所用的这些东西,不然有很多问题你是解决不了的。
假设有一天Springboot被淘汰了,某个团队又基于Spring框架搞出来一个新的框架内容,我们不是还要学一遍吗,但是掌握了Spring的各种用法,无论上层怎么变,底层内容还是不变的。只要研究透了Spring的AOP、Ioc/DI,就会发现框架的东西都大同小异,核心的思想还是这些。
SpringBoot2 全套讲解(2021) - 1. 课程导学https://www.zhihu.com/education/video-course/1483149994097741825
这套课程推荐给大家,课程本身是从四个案例:IDEA联网版、官网创建版、阿里云版、手工制作版带大家学习的。每个知识点背后都是案例的解析,不用怕学了很多理论不会用的情况,分为入门阶段>运维实用篇>实用开发篇;
三、Springboot需要学什么?
- 最基础的当然是 Spring/SpringMVC 相关的东西了。
- 搭配各种页面模版的使用,例如 Jsp/Thymeleaf/Freemarker/Groovy Templates 等。
- 和各种 SQL 数据库的整合,以及一些常见的数据持久化框架,例如 JdbcTemplate、MyBatis、Jpa 等。
- 和各种 NoSQL 数据库的整合,例如 Redis、MongoDB、Elasticsearch 等。
- 搭配安全管理相关的知识点,例如 Spring Security、Shiro 等。
- 缓存的使用,例如 JCache、Ehcache 等。
- 和消息中间件的搭配整合,如 ActiveMQ、RabbitMQ、Kafka 等。
- 数据校验/定时任务/邮件发送等。
- 各种监控的使用。
- 结合 WebSocket 的使用。
- Spring Cloud 中相关组件。
- ...
上面只是列出来的常见的技术点,每个技术点可以延伸很多东西,其实里面还会设计了第三方框架。例如 Redis、MongoDB、RabbitMQ 等,Spring Boot 的出现只是让这些组件在和 Spring 家族的产品整合时变得更加方便,但是并不会简化这些组件原本的用法,所以,该学 Redis、该学 MongoDB、该学 RabbitMQ 等等,还是一个不能少。以 Redis 为例,学会了 Redis,学会了 Spring 整合 Redis,再回过头来看 Spring Boot 整合 Redis,那简直太 easy 了。
但是,学习SpringBoot最终我们还是要奔着快速开发和微服务去的,所以像Docker、Spring Cloud等技术也需要了解一下。
四、Java框架应该怎么学?
Java发展到今天,网上的资料和图书现在是越来越多了。在看资料学习的同时,不管大家是通过下面哪种方式进行学习,希望注意以下学习顺序。
- 了解框架的基本概念和特点:在学习框架之前,你需要先了解框架的基本概念和特点,例如框架的作用、优点、使用场景等。你可以通过阅读官方文档、查找相关教程和博客等方式来了解框架的基本知识。
- 搭建环境:学习框架之前,你需要先搭建相应的开发环境,包括安装框架、配置开发环境、集成开发环境等。通常来说,框架的官方文档会提供相应的环境搭建指南。
- 学习框架的核心概念:学习框架的核心概念是非常重要的一步,它可以帮助你更好地理解框架的工作原理和使用方法。不同的框架有不同的核心概念,例如Spring框架的IoC和AOP、Hibernate框架的ORM等。你可以通过阅读官方文档、查找相关教程和博客等方式来学习框架的核心概念。
- 实践:学习框架最重要的一步是实践。你可以通过编写示例代码、完成练习题、参加开源项目等方式来实践学习的内容。在实践过程中,你可以深入理解框架的使用方法和技巧,同时也可以提高自己的编程能力。
- 进行深入学习:在学习框架的基础上,你可以进一步学习框架的高级特性和优化方法,例如框架的插件机制、性能优化、调试技巧等。这些内容可以帮助你更好地应用框架,并在实际项目中发挥框架的最大价值。
总结一下就是掌握基本概念 ——> 搭建环境 ——> 学习核心概念 ——> 进行实践和深入学习等步骤。
五、Java学习资源
【基础】
- 黑马程序员:自学Java第一天-认识Java以及JDK的安装和下载
- 黑马程序员:自学Java第二天-Java基础语法以及IDEA安装操作
- 黑马程序员:自学Java第三天-运算符、表达式、字符串的操作等
- 黑马程序员:自学Java第四天-流程控制语句
- 黑马程序员:自学Java第五天-数组全部知识点以及7个练习题
- 黑马程序员:自学Java第六天-循环、条件控制语句、Random(附习题)
- 黑马程序员:自学Java第七天-方法的概述
- 黑马程序员:自学Java第八天:面向对象
【JavaWeb】
- MySQL的安装及登陆基本操作(附图)手把手带你安装
- MySQL基础:通过SQL对数据库进行CRUD
- MySQL基础:通过SQL对表、数据进行CRUD,万字实际案例手把手教程
- MySQL高级:掌握约束的使用
- MySQL高级:掌握表关系及建表原则
- MySQL高级:重点掌握多表查询操作
- MySQL高级:以实际案例掌握事务操作
- JDBC:从CRUD开始,理解JDBC中的各个对象作用,掌握Druid的使用
- Maven从安装到手把手教学进行项目管理
- MyBatis完成代理方式查询数据以及核心文件配置、
- Mybatis:使用映射配置文件实现CRUD操作,能够使用注解实现CRUD操作
- HTML标签大全,存起来总有一天用的上
- Java后端学CSS内容
【SSM】
- SSM框架01:Spring的IoC和DI,以及手把手带你创建Spring核心配置文件
- SSM框架02:从0-1学习Spring配置文件
- 为什么要学Spring?学什么?怎么学?
- Spring到底是如何来实现IOC和DI?案例解析入门篇
- 万字详解Spring之IOC全部知识点
- 详解DI相关内容,一文掌握DI配置与使用
- Spring掌握IOC/DI配置管理第三方bean
- Spring核心容器环境配置、创建、依赖注入等
- Spring掌握IOC/DI注解管理第三方bean
- Spring:IOC/DI注解开发管理第三方bean
- 完成Spring与Mybatis及Junit的整合开发
- Spring:入门AOP案例分析
- 能运用AOP相关知识完成对应的案例编写
【中文文档】
- Spring Framework 官方文档中文版:https://springcloud.cc/spring-framework.html
- Spring Boot 官方文档中文版:https://springcloud.cc/spring-boot.html
- Spring Cloud 官方文档中文版:https://springcloud.cc/spring-cloud-dalston.html
- Hibernate 官方文档中文版:https://docs.jboss.org/hibernate/orm/5.4/quickstart/html_single/
- MyBatis 官方文档中文版:https://mybatis.org/mybatis-3/zh/index.html
- Struts2 官方文档中文版:https://struts.apache.org/getting-started/index.html
- JPA 官方文档中文版:https://www.ibm.com/developerworks/cn/java/j-lo-jpa/
- Spring Data 官方文档中文版:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#reference
- Spring Security 官方文档中文版:https://springcloud.cc/spring-security.html
- Netty 官方文档中文版:https://netty.io/wiki/zh-tw/use