Spring Boot实战:从0开始动手搭建企业级项目
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 学习Spring Boot遇到的问题

近几年笔者一直在做关于Spring Boot的技术实践和分享,也不断有朋友与笔者进行技术交流。在交流过程中,很多朋友描述了他们遇到的Spring Boot学习困境,如图1-1所示。

图1-1 Spring Boot学习困境

笔者将结合自身的学习和实践经验,对这些问题进行总结和回答。

1. 如何快速入门Spring Boot呢

在学习一门新技术时,很多开发人员会在网上找demo或者在开源网站上找对应的开源项目,通过阅读源码,学习项目作者的开发思路和解决问题的方法。这一过程对大多数人来说并不容易,要么不知道从何下手,要么由于技术文档的不完善导致被某个环节卡住。这些不利的因素最终可能导致开发人员无法坚持学习。

学习新技术的第一阶段,首先应该了解这门技术的产生背景、理念、发展历程,同时要分析它主要解决什么痛点。然后可以参照官网的案例进行尝试性的编码。

2. Spring Boot入门了,然后呢

对于开发人员来说,学习任何技术的最终目的都是为了进行实际企业项目的开发。了解一门技术,甚至通过编码实现了一些小功能,但是没有尝试与正在开发或者已经上线的项目进行结合与类比,这是不行的。如果开发人员处在这个状态下,就应该思考一下用Spring Boot重构正在开发或者已经上线的项目。笔者认为,原项目中的模块和功能,都可以尝试使用Spring Boot实现,并逐一比较该开发模式与平时直接使用Spring进行开发有何不同。通过一两个项目的实践,就能更加了解Spring Boot技术栈,而且可以整合前期零散的知识点,获得较大提升。

3. Spring Boot进阶之路,路在何方

随着开发人员对Spring Boot技术学习和使用的深入,其需求会由使用转向深入理解和掌握。此时的开发人员往往处于一个比较迷茫的状态,即知其然不知其所以然,主要表现在以下几个方面。

(1)能够使用Spring Boot进行功能开发,但是并不知道所写的代码具体是如何生效的。比如最常见的数据源配置,即在配置文件中设置JDBC的相关参数就可以直接连接数据库并进行相关操作。此时的痛点就是虽然能够写出一个功能的实现代码,但不知道为什么要这么写。

(2)在面试或者技术交流时,谈到Spring Boot的底层实现和设计思想,该阶段的开发人员往往一脸茫然,无法给出自己的回答。他们对Spring Boot的了解并不全面,而且Spring Boot技术栈涉及的模块很多,知识点的串联难度也就比较高。

比如“约定优于配置”。什么是约定优于配置?它具有什么特点,又能给实际开发工作的效率带来哪些提升?比如自动配置,什么是自动配置?它又是如何实现的?自动配置的机制能够给开发工作带来哪些改变?再比如Spring Boot中的各种starter是什么?该如何深入了解它?此时的痛点就是对于耳熟能详的特性或者概念不理解其内在含义。

(3)对于阅读和学习源码,该阶段的开发人员往往不知道从哪里看起,也没有坚实的理论基础,看不懂源码的含义,最后就放弃学习。此时的痛点就是对于源码阅读有心无力,没有良好的方法论和指导。

如果正在阅读本书的读者也遇到了相似问题,一方面说明你已经掌握了Spring Boot的基本使用方法,另一方面也说明你需要升级相关知识的认知了。

4. Spring Boot完整项目开发,如何实践

该阶段的开发人员有了自己的项目构想,但是不知道如何开发一个完整的项目。他们经常开发到某一个阶段就会被一些小问题卡住,导致无法继续开发。由于缺少完整的项目源码和系统的知识讲解,他们在开发过程中时常会碰到各种小问题,最终导致开发进度停滞不前甚至被迫终止开发。其实笔者在项目开发的过程中也会遇到各种各样的问题,甚至也遇到过不能继续开发的死局。任何人都会遇到问题,我们应该尝试着解决它,而不是退缩和逃避,通过摸索、学习最终都会解决问题。