我为什么创作《Spring boot 实战权威指南——基础篇》?

前言

Java的各种开发框架发展了很多年,影响了一代又一代的开发人员,无论是程序员,还是架构师,使用这些框架开发不到万人规模的企业应用或者开发1分钟千万访问量的互联网电商系统都面临着两方面的挑战。

  • 一方面,要快速开发出系统,这就要求使用的开发框架尽量简单,无论是新手老手都能快速上手,快速完成页面渲染,数据库访问等常用技术。也要求开发框架能尽量多的集成第三方工具,以便随时调取。更希望在开发调试过程中,能够方便代码更改后快速重启。

  • 另外一方面,当系统模块增加,用户使用量增加,面对这样的挑战,系统必须拆分成为小微系统甚至是微服务,程序员和架构师当然不希望换掉已有的开发框架,希望由小而美的系统能平稳过渡到大而强的分布式系统。

环顾当前Java开源世界中的流行技术框架,能同时满足快速开发和分布式系统架构的框架,当属群众基础最好,功能最全,基于Spring技术的Spring Boot框架。

这几年来,企业应用的开发框架都渐渐使用Spring Boot 2作为基础,以我的开发经历来看,在写作本书第一版的时候,公司一开始是拒绝使用Spring Boot 的,而坚持使用Spring,后来也是在调研后同意采用Spring Boot并取得了很好效果。

如果你搜索关于Spring 的开发“脚手架”,你会发现这些“脚手架”已经转为以SpringBoot 2为基础的开发框架。互联网公司也开始大量采用Spring Boot,一些巨无霸互联网公司虽然由于历史原因没有采用Spring Boot和Spring Cloud,但这些公司的框架和微服务设计,跟Spring Boot和Spring Cloud相差无几。

开发脚手架是指一套现成的系统,它包含了技术框架(如使用Spring Boot),和基础的业务领域的功能,以及业务开发规范。开发脚手架通常包含最基础的用户、机构、权限、数据字典管理,也可能包含代码生成功能,基础的工作流集成等。本书附录会介绍SpringBoot-Plus开发脚手架,一个适合中小型企业应用的脚手架。

而开发框架是一套技术框架,如Spring Boot 2,基于Spring的SpringSide,Struts等的技术框架。

内容简介

本书系统介绍了Spring Boot 2 的主要技术,主要侧重两个方面,一方面是极速开发一个WEB应用系统。第1到第7章,主要讲解了Spring介绍、MVC、视图技术、数据库访问技术,随Spring Boot的高级特性。第8章到第11章,讲解配置Spring Boot等高级特性、多环境部署、单元测试,以及深入IOC,AOP和事务。第2章主要对Spring Boot Plus项目做了简要介绍。

阅读本书的人,可以是Java新手,也可以是Spring新手,还可以是用过Spring,但想进一步了解Spring Boot的开发者。如果你已经使用过Spring Boot,本书也非常适合你全面深入了解Spring Boot。

读完本书后,读者能轻松快速构建Web应用系统,也能握分布式系统架构实现。

  • 第1章,如果不知道Java开发框架历史,很难理解Spring Boot。本书第1章 介绍了Java EE并指出其缺点,然后介绍了流行的Spring,同时也说明Spring经过这些年发展后的一些缺点,从而引入介绍SpringBoot,并用两个例子来说明。。

  • 第2章:对Spring Boot应用的开发环境做了说明,包括Java开发环境安装和配置, Eclipse、Idea以及Maven安装和配置,设置国内仓库镜像。

  • 第3章: 详细介绍MVC技术,重点介绍URL映射到Contorller,以及映射到Controller 方法的参数,附件上传,参数类型转化,参数验证。

  • 第4章:对视图层介绍,分为俩部分,一部分是Jackson,性能最好,功能最全的Json序列化工具,Spring Boot不仅仅将Jackson作为MVC中的JSON默认和推荐工具,也是Spring Boot分布式技术中常采用的JSON序列化技术。第二部分 介绍了笔者的开源技术Beetl后端模板引擎,作为国内最为流行的模板引擎之一,也是当今世界性能最好,功能最全的文本处理引擎。广泛应用到国内各大公司。

  • 第5章: 介绍了以面向对象为中心的数据库访问工具Spring Data JPA。本章由易到难,先从Spring Data提供的功能入手介绍如何完成数据库简单的增删改查功能,然后引入JPA来解决应用中不可避免的复杂SQL查询。

  • 第6章 介绍了以SQL为中心的数据库访问工具,主要包含俩款,一个是流行多年通过XML来管理SQL的Mybatis,以及辅助工具MyBatis-Plus。另外一个是笔者的Dao工具,SQL在markdown文件中管理,内置增删改查,无需辅助插件。以SQL为中心的数据库访问工具, 适合那些更喜欢SQL方式访问数据库的开发者。

  • 第7章:介绍了MyBatis-Plus系统集成,本章节内容由MyBatis-Plus作者提供。

  • 第8章:介绍Spring Boot高级特性,如常用Spring Boot的配置,日志配置,应用配置的读取,Spring Boot自动装配技术,Spring Boot Stater实现。

  • 第9章: 介绍了如何部署Spring Boot应用,包括可执行jar,以及通过war部署到应用服务器上。应用经常面对多个环境,如开发,测试,还有准线上,线上,以及多个Demo环境,Spring Boot提供Profile来实现多环境部署

  • 第10章:介绍了单元测试概念,以及SpringBoot下的单元测试支持,包括MVC单元测试,Mock测试。

  • 第11章:考虑到Spring Boot 以Spring技术为从基础,本章会再次深入介绍IOC,AOP和事务处理

  • 第12章:介绍Spring Boot2 Plus项目安装和核心模型,代码生成功能。

如何阅读本书

笔者作为一个从事Java开发19年的程序员,这里给新手一些诚恳的建议,用于帮助新手掌握Spring Boot 2。

如果你是Java新手,Spring新手或者是Spring Boot新手,建议先按照本书每章的例子先模仿一遍。不要急于按照自己项目要求去改,这样很容易使掌握的知识不牢固、不全面。如果遇到自己暂时无法理解的知识,也建议优先记住这些知识点。

当理解完书中的知识,能运行书中提供的例子(推荐手写,或者从官网下载例子)后,可以尝试主动制造一些错误。看看Spring Boot 会给你什么样的错误提示。通过主动制造错误,观察Spring Boot应用的错误信息或者请求对应的输出来深入学习Spring Boot。这不仅是学习Spring Boot,也是学习其他框架,学习其他编程技术甚至是各种编程语言的一个学习窍门。

本书每章都会提及Spring Boot框架的一些接口或者关键类,即使不了解这些类的实现细节,你也仍然可以运用Spring Boot。如果想深入掌握Spring Boot,建议阅读这些类的源代码了解这些类的职责以及如何实现职责。可以通过IDE的快捷键打开这些类,以Eclipse 为例子,用ctlr-t 打开这些类去阅读Spring源码。还可以在这些类的方法里打上断点,在运行本书的例子的时候,查看在断点处发什么来帮助你理解Spring Boot。

如果对于这些类还是无法理解,可以通过搜索引擎搜索这些类,总有些博客和技术文章在讨论这些类的职责和实现方式。

谨慎对待互联网搜索结果,这是因为Spring Boot 2 技术本身较新,发展也较快,通过互联网搜索结果关注一下文章发布日期,文章适用版本,如果你在使用Spring Boot 2中遇到任何问题,也都欢迎到社区交流,社区地址是ibeetl.com。

本书第二版与第一版区别

本书是在SpringBoot 2.0 精髓的第二版,根据第一版的反馈,有如下改进。

  • 书中所有内容更新到最新版本,由于本书发行采用电子版,读者随时可以看到最新内容。

  • 杜绝纯理论,杜绝贴源码行为,例子紧密结合业务实战,兼顾教学和实战。

  • 杜绝只讲Spring Boot,不讲Spring 生态的行为,立刻学习,立刻使用。

  • 介绍了SpringBoot-plus 开发平台,一个真正的开发平台内核系统,可以作为每个软件公司后台项目脚手架。

  • 增加了选型分析,Springboot 继承了很多框架,每章涉及到多个框架选型会做出一定个人分析,比如为什么SpringBoot会推荐HikariCP、Jackson。

  • 微服务基本概念介绍,分布式介绍,这主要参考微服务模式和数据密集型应用。

  • 更多介绍Redis, 考虑到Reids 应用更加普遍,同时也介绍了JVM缓存caffeine,caffeine+redis,一对互联网高并发应用的黄金搭档。这来自于我在京东工作的经验。

  • 对一些Spring基础知识也较第一版本做了大幅度增强,满足高级开发者的使用需求,比如AOP、事务管理。

  • 由于出版的是电子版图书,所以有更多个人技术上的见解可以写在书里,能帮助更多初学者选型技术,以及知道如何选型技术。

本书并不是一本Spring原理书或者SpringBoot 2的源码解析书,本书紧贴SpringBoot 2实战和定制化开发,如果你想立即使用SpringBoot2,只需本书一本就够了,而不像其他书要分好几本买,看数千页的资料才能编写Spring Boot 实战项目,《Spring Boot2 实战》 是最好的选择。 本书例子

本书的所有例子都直接访问码云或者ibeetl.com网站获取书中代码,网站还提供了关于Spring Boot 更深入的例子,并且包括两个实例,一个是采用Spring Boot 构建的轻量级BBS,还有一个企业应用脚手架的完整例子Spring Boot Plus。,这两个例子被国内很多中小企业再次定制使用。本书会介绍Spring Boot Plus项目。

如下是本书例子的截图。

每一章节的例子

我为什么创作《Spring boot 实战权威指南——基础篇》?

Spring Boot Plus

我为什么创作《Spring boot 实战权威指南——基础篇》?

轻量级BBS

我为什么创作《Spring boot 实战权威指南——基础篇》?