推荐序
本书内容很全面,囊括了 Spring 生态的常用技术,如 MVC、持久化、Redis、定时任务、消息队列、搜索引擎。本书知识讲解由浅到深,循序渐进,从 Hello World讲到 Spring 核心原理;技术讲解深入浅出,总能以“接地气”的例子,把抽象的技术讲述得妙趣横生,把技术学习变得像和朋友聊天一样轻松愉快。本书的内容设计由易到难,图文并茂,再加上丰富的实例,可以让初级人员非常轻松地入门。同时,作者对技术独树一帜的理解还可以让中、高级的技术人员受到很多启发。所以,本书堪称“老少皆宜,居家、旅行必备良品”。《Spring Boot 趣味实战课》你值得拥有!
——马士兵教育创始人 马士兵
如今,我们处在一个快速变化的年代,软件技术的更迭越来越快。之前,Java 工程师必须掌握的技能是 SSH 框架(Struts+Spring+Hibernate),但是很快就变成了 SSM框架(Spring MVC+Spring+MyBatis)。虽然这两个框架只有一个字母的差别,含义却完全不同了。接下来,又经历了前/后端分离、微服务、云原生、大数据……作为技术开发人员,我们在这样一个时代的生存技能就是适应变化,即逐步地学习和掌握所有技术,即使不精通某些技术也必须对它们有所了解。然而,在这长长的学习清单中,Spring Boot 无疑是具有承上启下功能的关键技术。
未来的 Java 项目开发必然是基于 Spring Boot 的项目开发。无论是采用前/后端分离、SSM 框架,还是采用基于 Spring Cloud 的微服务转型、云原生开发,我们都必须掌握 Spring Boot。也就是说,掌握 Spring Boot 已然成为所有 Java 工程师进入这个行业的必备技能,大家必须认真学习,学扎实、学牢固。因此,我为大家推荐《Spring Boot
趣味实战课》这本书。
本书用一种更加趣味的形式,将枯燥的技术用故事的形式串联起来,让学习更加轻松、有趣。同时,本书更加注重实战,将 Spring Boot 的学习落实到一个一个的工作场景中。通过对这些场景的学习,我们才能将学习真正应用到未来的工作实践中。
然而,如何高效地学习,让学习事半功倍,也是当今技术开发人员必备的技能。那么,如何利用本书进行高效的学习呢?我认为,应当做到以下几个方面。
1.注重实战学习。作者在书中讲解了很多实操案例。在每一章节的学习中,我们都应当按照书中的内容来实际地搭建一个项目。不仅如此,在对书中的内容进行实操演练以后,我们甚至可以自己模拟一个项目来实战一下。这是因为很多知识都需要在实战中学习,而软件开发是一个强调动手能力的技能,千万不能光看书、不动手。
2.学会定位和解决问题。一个技术“大牛”和普通开发人员的差别在哪里呢?
不仅在于扎实的软件技术知识,还在于出错以后“踩坑排错”的能力。本书的作者是一个具有丰富经验的开发人员,在书中介绍了很多开发技巧。然而再多的开发技巧都不能把所有可能出现的问题全部覆盖。大家在跟随本书进行学习、实战的过程中,肯定会遇到各种错误。当系统报错时,大家不要慌张,可以仔细查看错误日志,先定位问题位置,再比对前后代码,跟踪调试各种变量,或者直接在网络上搜索相应的错误日志。当你把所有 Spring Boot 开发常见的“坑”都踩过了,并且知道了解决方法,就可以更加从容地应对未来的项目开发,同时你的收获也会更大。
3.能够举一反三地思考问题。不想成为技术“大牛”的开发人员不是好的开发人员!然而,成为技术“大牛”的过程要求我们在不断学习、思考的过程中成长。我们在书中的学习都是正向的学习,作者会在书中告诉我们应当如何做。在学习完这些知识以后,我们不妨反过来思考一下,为什么要这样做?不这样做会怎样呢?比如,书中说我们要逐渐将过去的 J2EE 项目转型成 Spring Boot 项目,那么为什么要转型,这会给我们带来哪些好处呢?既然有这些好处,那么其他地方是否也要做出相应改变呢?实际上,我们需要反复思考与整理才能把知识学得牢固、扎实,技术“大牛”就是这样成长起来的。
最后,我向大家强烈推荐这本书,希望它能给你带来更多的知识与收获。
——畅销书《架构真意》作者 范钢
前 言
本书结构
本书从宏观上可以分为 3 部分。
第 1 章~第 3 章是热身,主要包括一些必要的前置知识。
第 4 章~第 8 章是基础实战,包括 Spring Boot 的基本使用及其内部原理。
第 9 章~第 14 章是高级用法,主要介绍 Spring Boot 与其他各种组件的配合使用,
以完成更加复杂的功能。
本书各章节之间没有严格区分先后关系,读者可以根据自己的兴趣安排阅读顺序。但如果你是初学者,推荐你从前往后阅读。
章节介绍
第 1 章是对 Spring Boot 的宏观介绍,主要介绍了 Spring Boot 的现状,以及其简单易用的特点和“约定优于配置”的设计哲学。
第 2 章是一些准备工作,介绍了 Maven、Intellij IDEA 的常用设置及使用技巧,并推荐了一些好用的插件。
第 3 章通过一个 Hello World 示例引出 Spring Boot 的工程结构,并对 Starters 和YAML 进行了详细讲解。
第 4 章主要是对 Spring MVC 的讲解,不仅详细阐述了 Spring MVC 的各种用法,还对其原理及源码进行了分析。
第 5 章主要是对 HTTP 和 RESTful 的讲解。每个程序员都应该懂一点 HTTP。另外,本章还对 Swagger 的使用进行了细致讲解。
第 6 章是实战阶段的重头戏,介绍了持久化的相关内容,如 MyBatis、Spring DataJPA、Druid、事务隔离级别及传播特性等。
第 7 章包含 3 方面内容,即单元测试、异常处理和日志。这“三驾马车”可以为VI Spring Boot 趣味实战课你的系统保驾护航,快速定位问题。
第 8 章主要介绍 IOC、AOP、自动配置、启动流程,涵盖了 Spring Boot 的核心内容,涉及大量源码分析。
第 9 章主要介绍 Redis 整合 Spring Boot 的各种实战,以及如何使用 Redis 实现分布式锁。
第 10 章主要讲解 Spring Security 的整合、认证和授权,为系统安全提供保障。
第 11 章分别使用 Spring Task 和 Quartz 作为实例,讲解定时任务的 3 种调度策略。
第 12 章介绍 RabbitMQ,不仅讲解了 RabbitMQ 的 5 种主要工作模式,还讨论了消息队列适用的业务场景。
第 13 章讲解 Elasticsearch 的核心概念及基本用法,并阐述倒排索引的原理。
第 14 章介绍 Spring Boot 的监控组件 Actuator,并演示如何与 Spring Boot Admin整合使用。
第 15 章分享作者多年来关于技术学习的一些心得。
适用人群
想要学习 Java Web 的在校生
想要转行到 Java 的从业者
想要进一步提升自己的初、中级工程师
想要掌握 Spring Boot 核心原理的探索者
想要梳理 Spring Boot 知识体系以应对面试的人员
代码获取
本书源码已经被上传到 GitHub,可以通过 GitHub 域名 + /liushuijinger/springboot-book 的方式访问,也可以关注公众号“做个开发者”(微信号:Be-A-Developer)
并回复“源码”获得。
致谢
衷心感谢林瑞和编辑在本书的写作和编辑过程中,为本书提出了很多非常好的建议。感谢本书出版过程中涉及的所有工作人员,正因为有了你们,本书才能够顺利地来到每一位读者手中。最后,感谢每一位读者,你们的肯定是我不断进步的动力,你们的批评是我成长路上的阶梯。
作 者