如何系统学习Spring框架
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何系统学习Spring框架
1.前⾔
最近有朋友私信胖哥说⾃⼰从事Java开发好⼏年了,但是从来没有系统学习过Spring框架,希望找到⼀条系统学习Spring的路线来提升⼀下⾃⼰。
这像极了以前的我,想学却不知道从哪⾥下⼿,所以今天就简单来梳理⼀下。
2. 为什么要⽤Spring
学⼀个东西之前要搞清楚为什么学它。
这⾥简单⼀点说Spring就是【粘合剂】,你的应⽤框架的各个组件都是通过Spring来进⾏“拼接”的。
Spring降低了Java开发的复杂性。
通过Spring Bean的⽣命周期管理、依赖注⼊、⾯向接⼝、⾯向切⾯等⼿段实现了最少侵⼊编程,实现了松耦合,减少了样板代码。
所以你在学习Spring之前⼀定要花时间去理解下⾯⼏个语⾔⽆关性的概念:
依赖反转,也就是常说的IoC。
⾯向切⾯编程,也就是常说的AOP
⾯向接⼝编程,也就是操作抽象,屏蔽实现。
还有⼀个使⽤Spring的理由,经过18年的打磨,Spring已经成为J2EE事实上的标准,⽣态繁荣,社区活跃。
如今Spring已经不仅仅代表Spring Framework,它代表的是整个Spring Framework衍⽣的⽣态体系。
上⾯是Spring⽣态的⼀些组成项⽬,有些你可能已经熟练使⽤它们了,有些甚⾄连我都不曾了解过,有些项⽬已经做成了⼀个系列,有些项⽬也是不温不⽕,所以你抓不住重点了,所以你迷茫了。
3. 如何学习
从上⾯看Spring已经不算什么轻量级框架了。
从最早的interface21到现在的Spring 5,已经越来越庞⼤了,体系越来越复杂了。
我针对上⾯“混乱”的图谱进⾏了⼀些简单的归纳,让它看起来更加有层次⼀些。
从这张图上可以看出复杂的Spring⼀个终结点就是Spring Boot,绝⼤部分的Spring项⽬都可以通过Starter或者其它⽅式⾮常⽅便地集成到Spring Boot中开箱即⽤。
⽽且图中的⼀些模块并不是每个都很常⽤,在你学习的过程中也应该了解它们的使⽤场景。
建议从Spring Boot⼊⼿
由于Spring Boot起着承上启下的作⽤,所以先从它⼊⼿更加合适⼀些。
Spring Boot将⼀些框架和能⼒“⿊盒化”了,就像学习开汽车⼀样你不需要知道发动机的原理。
⽽且⽬前流⾏的微服务的核⼼⾻架就是Spring Boot。
所以先学习Spring Boot,从熟练使⽤,再到根据业务需要去改造Spring Boot,带着⽬的去学习事倍功半。
逐渐理解其设计理念和架构以及⼀些重要的源码解读。
然后过度到对Spring Framework的学习。
重点解决以下问题:
Spring Bean的⽣命周期是怎样的?
Spring IoC的⼯作流程是什么?是如何注册Spring Bean的?
Spring AOP的⼀些重要概念是什么?
Spring针对⼀些特定的第三⽅库是如何抽象封装的?
Spring中涉及到的⼀些设计模式有哪些?
Spring的⼀些常⽤注解有哪些?
其它有待补充
具体的学习路径
上⾯的⽅向有点宏观,但是在学习过程中要贯穿始终。
我们说点具体的路线,下⾯所⽰的学习路径并不是⾯⾯俱到的,但是你只要按照这个流程去学习基本上再有新的东西不会难住你了。
4. 总结
其实学东西最重要的还是找到适合⾃⼰的学习⽅法,同时坚持下去。
我建议多去看官⽅⽂档,或者其他⼈的分享的⼀些笔记,⼀定要多练习和勤记录。