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. AgileConfig-1.5.5 发布 - 支持 JSON 编辑模式

    本次更新加入了2个新的编辑模式:JSON 编辑模式.TEXT 编辑模式.特别是 JSON 编辑模式是大家比较期待的一个功能.因为大家都习惯了 appsettings.json 的配置编辑模式,所以天生 ...

  2. 【JavaSE】泛型

    Java泛型 2019-07-05  22:00:24  by冲冲 1. 泛型的引例 1 List list = new ArrayList(); 2 list.add(1022); //向集合中添加 ...

  3. 基于Ubuntu 18.04.5 LTS 部署Ceph集群测试及Ceph RDB的使用。

    1.ceph简介 Ceph在一个统一的系统中独特地提供对象.块和文件存储 1.1 ceph官网架构图 1.2 架构解释   CEPH 对象存储 CEPH 块设备 CEPH 文件系统 RESTful 接 ...

  4. 洛谷 P6783 - [Ynoi2008] rrusq(KDT+势能均摊+根号平衡)

    洛谷题面传送门 首先显然原问题严格强于区间数颜色,因此考虑将询问离线下来然后用某些根号级别复杂度的数据结构.按照数颜色题目的套路,我们肯定要对于每种颜色维护一个前驱 \(pre\),那么答案可写作 \ ...

  5. 【R】一对一变为一对多:将列折叠/连接/聚合为每个组(一行)内的字符串?

    目录 需求 实现 方法一 其他方法 data.table dplyr aggregate sqldf 延申:不用逗号分隔 需求 原始文件: data <- data.frame(A = c(re ...

  6. C#gridview颜色提示

    OnRowCreated="gridStatistic_RowCreated private void FillUI() { gridStatistic.DataSource = dtSta ...

  7. Azkaban(一)【集群安装】

    目录 一.下载解压 二. 配置Mysql 三. 配置Azkaban Executor 四. 配置Azkaban WebServer 一.下载解压 1.下载地址:https://github.com/a ...

  8. JavaScript小数、百分数的转换

    百分数转化为小数 function toPoint(percent){ var str=percent.replace("%",""); str= str/10 ...

  9. 关于浏览器,从输入URL到呈现页面过程!(主讲TCP/IP协议)

    一.文本对话--从请求到响应 我们在浏览器中输入一个 URL,回车之后便会在浏览器中观察到页面内容.实际上这个过程是: (1)浏览器向网站所在的服务器发送了一个 Request(请求) (2)网站服务 ...

  10. git删除了本地文件,从远程仓库中恢复

    在本地删除了文件,使用git pull,无法从远程项目中拉取下来 具体操作 查看项目的状态,会显示出你删除的数据 git status 进入被删除的文件的目录下,假设删除的文件名为 test.txt ...