个人建议不要跳过SSM。
很多人想要跳过SSM直接上手SpringBoot,但是SpringBoot中自动化配置、条件注解、Java配置等东西都基于Spring的。Java配置是Spring3开始提供的,条件注解也是Spring中的内容,很多内容都是Spring就有的,只不过在SpringBoot更好用。
换句话说,你以为你在学SpringBoot相关的内容,实际上学的还是Spring里面的东西。那既然如此,还不如老老实实学Spring。
要知道,各个领域都会面临一些问题,学了一些比较优秀的封装框架之后,还有没有必要学底层?当然有必要,因为底层的东西可以让我们更深刻的理解目前所用的这些东西,不然有很多问题你是解决不了的。
假设有一天Springboot被淘汰了,某个团队又基于Spring框架搞出来一个新的框架内容,我们不是还要学一遍吗,但是掌握了Spring的各种用法,无论上层怎么变,底层内容还是不变的。只要研究透了Spring的AOP、Ioc/DI,就会发现框架的东西都大同小异,核心的思想还是这些。
Java不是一直被喷繁琐吗?后来呢,SpringBoot来了,功能就是:
- 为所有基于Spring的Java开发提供便捷入门体验。
- 开箱即用,有自己自定义的配置就是用自己的,没有的话就官方的。
- 提供了一系列通用的非功能性的功能,比如嵌入式服务器、安全管理,健康监测等。
- 绝对没有代码生成,也需要XML配置。
SpirngBoot是让Java开发回归简单的,我们要知道,一个新的框架出来如果不是解决了开发的真正痛点,绝对不会广泛使用的。从2017年年初开始,SpirngBoot基本上就是面试必问问题了。
现在流行的什么SpringCloud微服务也是基于SpringBoot。
学习SSM框架
SSM框架课程分享:
在Java框架之前需要掌握:
Java基础、Java语法进阶、MySQL基础操作、MySQL数据库设计和多表操作、JDBC、Maven基础、MyBatis、HML+CSS、JavaScript、HTTP协议、Web服务器-Tomcat、Servlet、请求和响应\JSP&会话技术\ElementUI
学习框架的思路
我们下面以Spring框架为例,要先学习Spring框架设计思想。
为什么Spring能快速占领全球市场,不仅仅是因为某个功能强大,更重要的是思想。
其次是学会基础操作,这里要进行思考,操作与思想之间的联系。
最后是学习案例,熟练应用操作的同时,体会思想。
基础学会了就需要大量的案例熟练掌握框架的具体应用,加深对设计思想的理解。
比如Spring学习主要包括四个部分:
- Spring的IOC/DI
- Spring的AOP
- AOP的具体应用,事务管理
- IOC/DI的具体应用,整合Mybatis
其他框架也有主要需要学习的部分,大家可以看上述课程对照下面笔记。我们知道Spring最难的部分就是各种配置相关文件等,光看视频就比较容易出错,所以黑马程序员给流程都都梳理出来了,避免降低错误视频+讲义,对照操作:
- 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相关知识完成对应的案例编写
学习Java框架的书籍
《Spring源码深度解析》《Spring揭秘》《Spring技术内幕》;
一套课程下来之后,大家还要深入学习,可以选择看书,毕竟书降低了我们读源码的难度。当然,想要挑战的同学们,可以去读框架源码:
- 读Spring框架源码的时候,先熟练掌握框架。
- 其次是Java相关的内容,比如:集合框架(数据结构的实现),多线程技术(线程池、线程安全、并发容易等)、反射与注解(Spring中大量的使用到了反射)、面向对象(面向对象不仅仅值得是对象抽象,还包括对象集成、多态等各种机制)。以及Java一些高级特性,如基于Java接口的动态代理。
- 设计模式:Spring中大量使用了各种设计模式提高其健壮性,因此对于设计模式需要一些深刻的理解。
学习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等技术也需要了解一下。
怎么学呢?
Spring Boot 发展到今天,网上的资料和图书现在是越来越多了。在看资料学习的同时,大家也要留意以下几个点:
- 多看源码。不同于其他全新的框架源码你可能会看懵了,由于 Spring Boot 是基于 Spring 的,所以只要你 Spring 基础扎实,看 Spring Boot 源码可以说是毫无压力。如果看 Spring Boot 源码觉得有压力,那可能你 Spring 基础不牢靠,这个时候不妨放下 Spring Boot,去复习下 Spring。
- 每当学会 Spring Boot 中的一个知识点,不妨想想这个功能在 Spring 框架中要如何使用,如何配置,两边都搞懂了,互相印证,加深对一个知识点的理解。
- 多多关注 Spring Boot 的发展动态。不同于传统的框架可能一年更新一两次,Spring Boot 更新非常频繁,二次每次更新都会带来一些好玩的东西,可能会有新的 API 加入进来,也可能会有旧的 API 失效,变化大,因此多多关注,避免掉坑。
课程和笔记分享
SpringBoot2 全套讲解(2021) - 1. 课程导学https://www.zhihu.com/education/video-course/1483149994097741825
springboot应该怎么学?https://www.zhihu.com/question/552565596/answer/2671921264