现代人越来越离不开互联网。打车、购票软件助力出行,支付软件让各类交易变得快捷,电商与物流系统的联合让北方的居民也能吃上南国的水果。互联网已经涉及现代生活的方方面面,Web开发技术为之贡献了许多。Spring作为Java Web开发的中坚力量,在该领域的快速发展中扮演着重要的角色。Spring社区不断地向外输出Web开发技术,在保证性能的同时兼顾开发效率。这样的特点让基于Spring的Web开发技术得到广泛的应用,如果选择使用Java语言开发Web服务,Spring就是Java开发人员的首选。
Spring Boot是Spring社区中的顶级项目,在整个生态中如同基石一样。无论是想结合模板引擎实现一个单体应用、支撑前端项目的RESTful服务或者基于Spring Cloud开发一套微服务,这些都离不开Spring Boot。
本书从实际应用出发,理论结合实例,深入浅出地对Spring Boot开发进行讲解。实战内容将贯穿全书,指导读者通过动手实践,从一行语句、一个方法到整个的项目,完整地理解Spring Boot开发的流程,从而获得和提升Web应用开发的能力。
本书特色
1. 涵盖Spring生态中的主流框架
框架的选择需要足够慎重,好的框架不仅能解决开发过程中的问题,还能保证在项目运行的过程中尽可能不制造新的问题。本书中包含Spring Boot整合各类框架的内容,这些框架基本来自于Spring团队或是由Spring团队所推荐的解决方案,足够主流,也足够可靠。
2. 根据程序实现经历的周期展开对Spring Boot开发的讲解
全书内容根据一个Web项目的实现周期展开,从前期的选型以及项目搭建到具体各种模块的开发,从对程序的测试到最终项目的监控部署,完整地描述项目周期,为广大读者提供更多的视角,以提高本书的参考价值。
3. 讲解过程中穿插实战,覆盖不同读者群体
本书在讲解过程中穿插着丰富的示例以及实战内容。从本书的前半部开始,边讲解边逐步完善一个博客程序;到本书最后的实战阶段,完整地实现三个实战项目,并针对特定解决方案讲解附加的示例代码,相关源码可通过网盘下载。这样的方式既可以让新手读者逐行语句进行实践,也可以让基础扎实的读者了解与参考实现当中的细节。
4. 模块驱动,应用性强
本书当中的解决方案根据需求与场景进行区分,可以根据需求快速阅读并实践,帮助读者实实在在地解决问题。
本书内容体系
第1章 Spring Boot基础知识
本章介绍Spring Boot开发有关的基础知识。主要包含工具选择、环境搭建、项目构建以及基础的开发流程。本章的内容主要为了帮助读者掌握Spring Boot开发所需的基本概念。
第2章 使用Spring Boot构建Web应用程序
本章介绍构建基于Spring Boot的单体应用所需掌握的基本知识。主要包括数据持久化、模板框架、文件上传等内容。
第3章 创建RESTful Web服务
本章专注于讲解如何构建一个RESTful Web服务。讲解过程中将涉及HTTP的基础概念以及RESTful Web服务的设计思路,帮助读者在理解实现流程之外,还能理解承载这些解决方案的原理。
第4章 数据库与持久化技术
本章着重探讨数据持久化技术。依次讲解了简单易懂的JdbcTemplate、方便快捷的ORM解决方案JPA以及两种不同的NoSQL——MongoDB和Redis。整个过程层层递进,帮助读者理解不同场景下该使用关系型数据库还是非关系型数据库,以及不同数据库在Spring Boot中的调用方法。
第5章 应用程序安全性
本章的切入点是应用程序的安全。Spring Boot的安全可以通过整合Spring Security框架来实现。在介绍完Spring Security的整合流程之外,还介绍了Session-Cookie与Token两种典型的鉴权模式。不同的鉴权模式之间并无绝对的优劣之分,与持久化技术一样,没有最好的方案,只有适合的方案。
第6章 自动化测试
自动化测试在开发过程中处于常常被人忽略的地位。一方面编写完整有效的自动测试用例与编写出可靠的程序一样,需要耗费很大精力;另一方面,测试的收益并不明显。本章介绍了不同粒度的自动化测试方案,阐述了自动化测试对整个项目的意义,并且讲解了如何通过Spring Boot提供的测试框架快速实现测试用例。
第7章 运维与部署
Spring Boot不仅开发起来很高效,部署起来也非常友好。本章介绍Spring Boot支持的运维与部署方案以及开发者工具,帮助开发人员获得更好的开发体验。
第8章 实战1:基于STOMP协议的聊天服务
本章开始便是本书的实战环节,介绍如何从零到一地开发一个聊天服务,其中包含STOMP通信协议的原理以及后端服务的实现。
第9章 实战2:在线商城
本章实战内容主要关于如何实现一个商城服务。这类相对传统的Web服务依赖于页面的表现,在后端数据库以及程序的设计外,还详细介绍了模板引擎Thymeleaf的使用。
第10章 实战3:个人云盘
个人云盘项目用到了成熟的第三方中间件MinIO,通过MinIO的存储功能作为个人云盘的核心功能。为实现可快速重复地集成MinIO,本章还介绍如何针对第三方服务封装Starter,通过引入Starter模块实现对第三方服务的快速集成。