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方面的书籍,会定期在公众号里发书的电子版。请大家关注下我的公众号,谢谢了。

如何高效地把Spring boot学到能干活的程度的更多相关文章

  1. Spring Boot学到的内容

    Hello World:了解程序入口(创建启动类) Web程序:写Controller类(@RestController),写Controller方法(@GetMapping),maven依赖spri ...

  2. 前后端分离,我怎么就选择了 Spring Boot + Vue 技术栈?

    前两天又有小伙伴私信松哥,问题还是职业规划,Java 技术栈路线这种,实际上对于这一类问题我经常不太敢回答,每个人的情况都不太一样,而小伙伴也很少详细介绍自己的情况,大都是一两句话就把问题抛出来了,啥 ...

  3. Spring.Boot.1 -- 概览

    Spring Boot 是如何简化Java 开发的 SpringBoot的一些重要特征 长久以来,Spring 框架作为Java应用开发的框架地位稳固.最近在云计算.大数据.无结构数据持续化.函数式反 ...

  4. 57. Spring 自定义properties升级篇【从零开始学Spring Boot】

    之前在两篇文章中都有简单介绍或者提到过 自定义属性的用法: 25.Spring Boot使用自定义的properties[从零开始学Spring Boot] 51. spring boot属性文件之多 ...

  5. 从零一起学Spring Boot之LayIM项目长成记(五)websocket

    前言 距离上一篇已经比较久的时间了,项目也是开了个头.并且,由于网上的关于Spring Boot的websocket讲解也比较多.于是我采用了另外的一个通讯框架 t-io 来实现LayIM中的通讯功能 ...

  6. 从零一起学Spring Boot之LayIM项目长成记(四) Spring Boot JPA 深入了解

    前言 本篇内容主要是一些关于JPA的常用的一些用法等.内容也是很多是看其他博客学来的,顺道在本系列博客里抽出一篇作为总结.下面让我们来看看吧. 不过我更推荐大家读本篇:https://lufficc. ...

  7. 从零一起学Spring Boot之LayIM项目长成记(三) 数据库的简单设计和JPA的简单使用。

    前言 今天是第三篇了,上一篇简单模拟了数据,实现了LayIM页面的数据加载.那么今天呢就要用数据库的数据了.闲言少叙,书归正传,让我们开始吧. 数据库 之前有好多小伙伴问我数据库是怎么设计的.我个人用 ...

  8. 下雨天,适合学「Spring Boot」

      北方的闷热,让不少小伙伴盼着下雨,前几天北京下了场大雨,杭州也紧跟这下了场雨,就在昨天原本还很闷热的天,突然就飘泼大雨了.今天也断断续续的下着小雨,一觉醒来已经是10点了.有句话说:懒惰是人的天性 ...

  9. 从零一起学Spring Boot之LayIM项目长成记(二) LayIM初体验

    前言 接上篇,已经完成了一个SpringBoot项目的基本搭建.那么现在就要考虑要做什么,怎么做的问题.所以本篇内容不多,带大家一起来简单了解一下要做的东西,之前有很多人不知道从哪里下手,那么今天我带 ...

随机推荐

  1. [bzoj1089]严格n元树

    设f[i]表示深度不超过i的方案数,那么有f[0]=1,$f[i]=f[i-1]^{n}+1$,然后用高精度即可(注意深度恰好为d还要用f[d]-f[d-1]才是答案) 1 #include<b ...

  2. [luogu5616]恶魔之树

    记录$lcm$的质因子状态(包括大于$\sqrt 300$的质因子),设$f[s]$表示质因子状态为$s$的$lcm$之和,转移枚举当前的数$k$,转移到$lcm(s,k)$即可,时间复杂度为$o(n ...

  3. [bzoj1107]驾驶考试

    转化题意,如果一个点k符合条件,当且仅当k能到达1和n考虑如果l和r($l<r$)符合条件,容易证明那么[l,r]的所有点都将会符合条件,因此答案是一个区间枚举答案区间[l,r],考虑如何判定答 ...

  4. 论文解读(node2vec)《node2vec Scalable Feature Learning for Networks》

    论文题目:<node2vec Scalable Feature Learning for Network>发表时间:  KDD 2016 论文作者:  Aditya Grover;Adit ...

  5. CURL常用参数

    1. CURL简介 cURL是一个利用URL语法在命令行下工作的文件传输工具.它支持文件上传和下载,是综合传输工具.cURL就是客户端(client)的URL工具的意思. 2. 常用参数 -k:不校验 ...

  6. Augustus 进行基因注释

      目前的从头预测软件大多是基于HMM(隐马尔科夫链)和贝叶斯理论,通过已有物种的注释信息对软件进行训练,从训练结果中去推断一段基因序列中可能的结构,在这方面做的最好的工具是AUGUSTUS它可以仅使 ...

  7. Linux—yum的python版本错误——初级解决方案

    为了安装rrdtool,发现不是少这个就是少那个,最后发现yum也不能用. 从网上找的解决yum问题. 转自:http://doarthon.blog.51cto.com/3175384/728809 ...

  8. matplotlib以对象方式绘制子图

    matplotlib有两种绘图方式,一种是基于脚本的方式,另一种是面向对象的方式 面向脚本的方式类似于matlab,面向对象的方式使用起来更为简便 创建子图的方式也很简单 fig,ax = plt.s ...

  9. 普通用户iptables规则持久化,开机自动恢复

    本文档对于docker环境下并不适用,docker环境的iptables持久化请参考https://www.cnblogs.com/wiseo/p/15000745.html 添加iptables规则 ...

  10. javaSE高级篇7 — 设计原则和设计模式 — 设计模式慢慢更( 这是思想层次篇 )

    1.什么是设计原则? 设计原则就是面向对象的原则嘛,即:OOP原则 换句话说:就是为了处理类与类之间的关系( 包括接口.类中的方法 ) 2.OOP设计原则有哪些? 1).开闭原则:就是指对拓展开放.对 ...