内容概览
- Spring 学习讨论
- Spring 项目
- Spring 学习顺序
- 总结
1. Spring 学习讨论
Spring框架是个让人又爱又恨的东西。做Java开发的几乎都知道Spring,它的简介就不说了,很多地方都有。经过很多年的学习,我觉得值得说的是,我们学习Spring技术都是从碎片技术开始学习的,向ioc,aop,到后来的Spring MVC,在后面可能是Spring整合HIbernate,Spring 整合 MyBatis,继续学习的还有Spring Boot,Spring Cloud等微服务内容。
针对每一个碎片,如果学习的比较系统还好,如果只是看了很多入门示例的文章,那么做开发的时候,会遇到很多似是而非的问题,甚至遇到很多地方自己并不知道有更好的方式或者选择,造成多人开发的时候,每个人的代码有各自的风格,互相看不太懂。如果遇到一些边角的技术,很多时候也是查一下网上的博客,临时学习一种写法,然后实现。
上面的内容看似很多,但是没有整理成自己的系统。相对于碎片式学习,我更喜欢系统式学习,如果在脑海中有一个系统,那么所有的碎片技术都可以整理到这个系统中,这样就知道自己的技术体系差哪些内容,这样自己就能整理出自己的一个学习路线,并且在解决实际问题的时候,更加得心应手,甚至在技术扩展上能有自己的见解。
其实不仅是针对一个框架技术,针对我们整体的Java技术体系,都可以有一个自己的系统,这个系统可以参考别人的技术体系,参考现在有的技术,参考自己的工作,但是最终应该自己总结出来,我们不断总结和完善自己的技术体系,然后扩大这个体系,然后再完善。。。
2. Spring 项目
2020年是以天天睡觉开头的。。。因为疾病流行,全民隔离,所以实在没事干。懒了二十多天后,从新开始投入学习实在是不容易。
书归正传,我们打开Spring官网,能感觉到和以前的不一样了(其实更喜欢老风格),
我们来看Spring官方有哪些项目(https://spring.io/projects):
可以看到很多著名的项目,像Spring Boot,Spring Cloud,Spring Framework,Spring Security等等。熟悉的还好,不熟悉的会感到眼花缭乱,又多又乱,不知道从何入手。其实每个项目在每个应用领域上都可以说是独立的,但是在技术上,又可能会依赖于其它一个或者多个项目,这时候学习顺序很重要。本系列文章我们只讨论Spring技术第一步开始学习的项目,就是最基础的 Spring Framework项目。
Spring项目的版本很重要,我们每个阶段的学习都要紧跟一个大版本去学习,这样不用考虑兼容性问题,但是学习的前提是实践,要学习和现在工作内容相符合的版本。本系列我们学习Spring 4版本的最后一个稳定版:
当我们系统学习完一个版本的时候,有新的版本的学习需求时,我们对老版本很熟悉的情况下,可以只进行补充和升级内容的学习即可。
3. Spring 学习顺序
Spring Framework项目都包含哪些内容呢?其实大部分Spring学习教程或者书籍的内容都是Spring Framework项目的技术内容(比如经典的Spring In Action)。
首先,来看官方学习文档的地址:
https://docs.spring.io/spring/docs/4.3.26.RELEASE/spring-framework-reference/htmlsingle/
我们打开页面,简单看一下目录,虽然都是英文,但是接触了很长时间的Spring,关键的技术单词还是能看到的,而且从目录上也能看到我们学习Spring Framework应该按照什么顺序来学。
整体来说,Spring Framework是从 spring ioc和spring aop两块开始的,这不仅是Spring Framework项目,也是其它所有项目的基础。学习了这两个内容,后面还跟着很多在基础项目方面的扩展技术,比如经典的Spring MVC,还有Spring整合数据库方面的技术,包括NoSQL数据库,还有Spring 整合缓存和消息队列等实用技术,还有测试,websocket等等。
从上面的资料中可以总结出我们在Spring Framework项目上的学习顺序,就是先把基础的两块(IOC和AOP)学会,然后再针对其它单个在每个领域的应用进行学习。能把整个Spring Framework学习完当然最好,如果公司很多东西实在用不到,比如这个小节:
相信使用EJB的现在应该是少数了,针对这些内容我们可以选择性的了解或者略过。
4. 总结
Spring是一块难啃的骨头,但是既然干了这行,就得把该学的学好,这样才能得到自己满意的工资。。。嗯,对,挣钱才是学习最大的动力!