Spring boot要学什么?要学到什么程度?以及相关的学习方法是什么?这些很难量化,但极好形容:需要学到能帮你找到一份工作的程度。
任何脱离工作脱离实际的学习,都是没有意义的。比如程序员运行通了很多开源项目,通过各种资料掌握了ioc,aop甚至全栈开发等等很多技术点,假设有100个,但可能真实开发过程中之用到60个,剩下的40个在初级开发阶段基本用不到,要等到高级开发阶段才有可能用到。那么就存在学习浪费的情况。
要知道,能留给零基础或基础薄弱的同学学习Spring boot的时间未必很长,比如3个月后毕业,或目前是做其他方面的工作,需要尽快学好。在这种情况下,全方位覆盖的学习方法不能说没错,但本文给出的,针对大多数是公司Spring boot基本需求的精准性学习路线,可能更有参考价值。
大多数公司,对刚入职的Spring Boot方面的程序员,最低要求是,会在项目经理的带领下,照着现有代码抄,实现增删改查的功能。再具体些,初级程序员无需搭建Spring boot框架,无需过多使用分布式组件,甚至无需过多了解前端,只需要用Spring boot+jpa,外带些辅助性的功能。
所以对应的Spring boot方面的学习路线如下所示。
1 搭建通环境,可以参考的环境包括jdk11,mysql服务器,mysql客户端,比如navicat等,idea集成开发环境。这里强调下,学习时一定得在环境上边运行边学。
2 搞明白一个基本的Spring boot+jpa连数据库的流程。这里可以推荐我写的书,其中有能运行通的Spring boot+JPA案例,且用控制器+service+repo层作为开发架构。
运行通这个案例后,你可以大致看下spring boot等基本语法,比如@Service等注解的用法,同时看下从控制器到 service层到repo,从前端到数据库的整套流程。
3 在此基础上,你可以进一步了解Spring boot里aop,拦截器,@Autowired实现依赖注入的语法,这些我书上都有。在这个阶段,你可以通过代码,熟悉java基础语法中的异常处理,ArrayList集合等语法的用法。
4 再进一步,你可以适当了解下Spring boot整合前端,所谓全栈开发的技能,在我的书里,也讲了Spring boot+vue,以及整合freemarker框架做全栈开发的技能。
其实你做到这步,先不考虑是否能过面试,但从技能角度来分析,至少达到了大多数公司开发的最低标准。大家想象下,新入职的Spring boot方面的员工,刚开始干什么活?会让调试分布式组件实现高并发?会让搭建一个Spring boot框架?不是。在这个阶段,项目经理会给出若干案例,让员工照着些,开发新功能。比如会给个订单查询模块,让写个类似的会员查询。
也就是说,在这个阶段,Spring boot的其他技能还真用不到,而公司面初级开发的时候,也是照着基本的增删改查面的。反观现在不少所谓的学习案例,里面无非是诸多业务的堆积,可能前端页面很花哨,但真实包含的Spring boot技能也就这些。
如果用这些案例学习,那么初学者会把宝贵的学习时间浪费在前端花哨的页面上,会用宝贵的学习时间重复地学习诸多面试时根本用不到的业务逻辑,甚至,有些案例还未必能保证运行通过。
大道至简,在Spring boot刚开始阶段,还真就可以只学增删改查,当然还可以进一步学习logback日志,安全框架,单元测试,junit等辅助技能。
学好这些技能以后,得马上通过面试检验下自己的学习效果。可以这样说,大多数初学者自己学的技能,和公司里用到的,也就是面试会问到的,有一定差距。那么根据本书学好Spring boot+Jpa增删改查后,该继续做什么呢?
1 整理简历,简历上,尽量多包含你运行通的学习项目,当然有商业项目那最好了,这可能是大多数学习项目的最好归宿。简历上的项目最好是3个以上,如果可以,持续的时间应当足够长,在描述项目时,不仅要写项目的需求,更要写其中包含的技术。
2 整理简历并不容易,可以这样说,不少同学整理的简历根本得不到面试机会。但这个和主题无关,本人不再展开讲述。在确保能用简历得到面试机会的前提下,多背些Spring boot,java和数据库的面试题,这块网上实在太多,在本人的其他书和博客里,也有描述,所以这里也不展开。
3 但是,本人说下在面试中展示Spring boot方面技能的说辞。
本人在xx项目里,用到了Spring boot技术,其中用到了jpa,aop和ioc等技术,用到了@Service和@Autowired等注解。本项目的控制器层,用restful规范对外提供服务,在service等层里,用logback输出日志,在repo层里,是用jpa连接mysql数据库,在定义entity实体类时,用到了@entity和@table等注解。如果有能力,你可以继续说,在本项目里,我们还用到了redis做缓存,用dubbo做远端调用,用rabbitmq做消息中间件。
其实在大多数的面试中,候选人只要能结合项目说清楚上述Spring boot技能点,外带背些题,至少spring boot框架方面能过关。
在刚开始的几场面试里,你大概率是一问三不知,你要做的,就是收集面试题,复盘分析,提升面试说辞和讲述Spring boot技能的技巧。在这个阶段,你更可以学些Spring boot整合分布式组件的技巧。
这方面的技巧,一方面面试中会用到,另一方面,当你成为高级开发后,迟早也会用到。
也就是说,当你按上述步骤,学好Spring Boot开发增删改查业务的相关技能,学少许前端和全栈技术,外带一些Spring Boot整合分布式组件的技能,再加必要的面试技能,足以能找到初级开发的工作。
这个学习过程需要多久?从java零基础到这个程度,3个月,因为本人就用这套模式培训零基础的学员并能确保他们入职,如果有Java基础,这个过程还能缩短。再自卖自夸下,为什么这套学习方法,乃至我写的书能让广大初学者快速入门Spring boot呢?
1 尽可能去掉了不该学的技术,或者说,不让学初级开发暂时用不到的技术。
2 讲解技术的代码,能跑通,而且不会通过堆积重复的业务代码浪费大家宝贵的学习时间。
可能有些项目确实能帮助程序员提升,但这些项目未必能帮助零基础同学入门Spring Boot。
学Spring boot的目的更是为了挣钱,出于这个目的,上文也包含了一些Spring boot相关的面试技巧。不过出于“不偏题”的目的,上文更多包含的是“spring boot怎么学”相关的内容。如果本文点击量高,本人还会来进一步讲述Spring boot方面写简历和准备面试的相关技巧。
祝大家早日学好并精通Spring boot,更祝大家能早日通过Spring Boot挣钱,也请大家多多点赞我的文章。
这是我的公众号,其中包含了大量面试文章,同时我自己出了多本Python和Java方面的书籍,会定期在公众号里发书的电子版。请大家关注下我的公众号,谢谢了。