随着互联网的发展,越来越来的企业采用Spring Boot来完成Web项目的开发。本书专门为Spring Boot企业项目开发者量身定制,内容涉及Spring Boot的理论基础、源码解析和项目开发中的各种技巧。
本书分为10章。第1章介绍Spring、Spring MVC的理论基础,同时搭建Spring开发环境;第2章介绍Spring Boot入门知识,包括Restful API、Jersey、Postman、Swagger2 UI和Lombok等;第3章介绍Spring Data JPA和Validate等;第4章介绍使用Spring Boot进行Web开发的具体方法,另外还会介绍Redis的使用;第5章介绍Spring Security的原理;第6章介绍Spring Boot框架的扩展,包括日志、定时任务、邮件的发送、Web Service和Web Socket等;第7章介绍单元测试、集成测试和性能测试等;第8章介绍Jeecg Boot的功能、环境、配置和源码等;第9章是项目实战,全面展示一个销售管理系统的完整开发过程;第10 章介绍项目的打包、热部署和监控等。
本书内容翔实,示例丰富,适合基础较为薄弱的Spring Boot项目开发人员阅读,也适合SpringBoot技术爱好者作为参考书,另外还可作为高等院校计算机及相关专业的教材。
一线开发人员项目开发经验的总结,专为Spring Boot企业项目开发者定制,多角度、多层次、全流程学习Spring Boot,涉及理论基础、源码解析和项目开发技巧,多位大咖力荐。
多角度学习Spring Boot,涵盖设计思想、组件功能和源码解析;
多层次学习Spring Boot,涵盖开发、测试、安全、扩展、部署和监控;
全流程学习Spring Boot,涵盖Maven搭建、数据库设计、数据持久化和打包部署。
Java一直是非常流行的编程语言,很多企业都选择使用Java进行企业级应用开发,尤其是大型项目的开发。伴随着Java 17的发布,其在开发方面让开发者越来越得心应手。由于Java的广泛应用,相关的开发框架越来越多,如Spring MVC+Spring+MyBatis(SSM)组合框架,这些框架可以帮助开发者极大地提高开发效率。但SSM这类框架的搭建和配置过程烦琐,开发者在搭建框架时通常需要对不同的框架进行集成和配置,然后启动项目进行测试访问,后才能进行项目的业务代码开发,整个过程非常耗时、耗力。Spring Boot的出现让开发者从这个烦琐的过程中解放出来,从而将更多的时间用在代码设计上。因此,Spring Boot一面世就得到广大开发者的热烈响应,人们纷纷转为使用Spring Boot进行开发。
目前市面上有很多介绍Spring Boot 1.x的图书,但缺少介绍Spring Boot 2.x的相关图书,尤其缺少介绍Spring Boot 2.x开发原理及使用Spring Boot 2.x进行企业级项目开发的图书。本书基于新发布的Spring Boot 2.x深入介绍其各个组件的用法,另外还介绍使用Spring Boot 2.x开发一个应用项目的完整过程,帮助读者全面、透彻地理解Spring Boot 2.x的相关技术,提升开发水平,从而更加高效地完成项目开发。
本书特色
1.理论知识结合实践代码,学习效果好
本书贯彻理论结合实践的讲解方式,先讲解理论知识,让读者知道所讲技术的由来和原理,然后给出实践代码,让读者在理解理论的基础上进行实践,从而达到较好的学习效果。
2.涵盖Spring Boot企业级项目开发的大部分技术
本书涵盖Spring Boot企业级项目开发的各方面知识,重点介绍Maven项目的搭建、Jersey Restful风格、Postman测试接口、Swagger2可视化文档、Lombok优雅编码、Redis缓存、Security安全机制、Web Service服务、Web Socket通信、性能测试、集成测试、Jeecg Boot快速开发框架、使用Docker进行项目部署、使用spring-boot-devtools进行热部署、使用Actuator进行监控等,这些内容在大部分的Spring Boot入门图书中都不会重点介绍。
3.详解Spring Boot Web开发的相关组件
本书详细介绍使用Spring Boot进行Web开发的各个常用组件的相关知识,涉及Spring MVC、Thymeleaf模板引擎、文件上传、过滤器、监听器、拦截器、Redis的使用和异常处理等内容,全面覆盖实际开发需求。
4.精讲Spring Boot的扩展知识,提高开发效率
本书对Spring Boot的各项扩展知识做了必要介绍,帮助读者应对开发中的特殊需求,从而快速完成业务代码的开发。
5.详解真实项目案例开发的完整流程
本书第9章详细介绍一个真实项目案例的开发过程,展示其从需求分析到系统设计,再到技术选型和数据库设计,后到项目编码工作的完整流程,帮助读者提升实际项目开发水平。
本书内容
第1章 Spring和Spring MVC基础知识
本章详细介绍Spring的功能模块、优点及其生态圈的现状,Spring开发环境的搭建,Eclipse和IntelliJ IDEA简单项目的开发,项目构建工具Maven的安装和使用,以及Spring注解和Spring MVC原理等。
第2章 Spring Boot从零入门
本章详细介绍Spring Boot的基础配置及其对多环境配置文件的支持,Restful API的构建,Postman接口访问和测试,使用Swagger2 UI生成API接口文档,以及Lombok插件的相关知识等。
第3章 数据持久化
本章详细介绍Spring Data JPA的原理,用Spring Data JPA连接MySQL数据库并对其进行增、删、改、查,Spring Boot Validate参数校验,以及JPA与SQL语句的自动生成等。
第4章 Spring Boot的Web应用开发
本章详细介绍Thymeleaf模板引擎的使用,常见的过滤器、监听器和拦截器的原理及其使用方法,项目开发中的异常处理,以及Redis的安装和使用等。
第5章 Spring Boot的Security安全控制
本章详细介绍如何在Spring Boot中集成Spring Security进行项目安全控制和授权控制,涵盖Spring Security的原理、验证机制及其在企业级开发中的使用,以及Spring Data JPA和MyBatis数据库访问等相关知识。
第6章 Spring Boot扩展
本章详细介绍项目中的日志管理,Log4j2日志的输出和格式化,定时任务开发,邮件的发送,Web Service及Web Socket的原理和使用等。
第7章 项目测试
本章详细介绍如何在Spring Boot项目中使用JUnit进行单元测试,使用Mockito进行对象的Mock测试,使用@SpringBootTest注解进行集成测试,并介绍性能测试的种类、衡量指标和实施步骤等。
第8章 Spring Boot项目快速开发框架Jeecg Boot
本章详细介绍项目快速开发框架Jeecg Boot的功能、前后端开发环境、技术栈、功能模块、配置文件、数据库访问及其在Web开发中需要用到的各类功能控制器等。
第9章 Spring Boot项目开发实战——销售管理系统
本章详细介绍使用Spring Boot开发一个销售管理系统的完整过程,涵盖系统设计、数据库设计、项目框架搭建和功能实现几个模块。
第10章 Spring Boot项目部署与监控
本章详细介绍项目开发完成后的一些工作,包括Spring Boot项目的打包部署和监控管理工具Actuator的具体使用。
读者对象
* 需要全面学习Java Web开发的人员;
* Spring Boot项目开发人员;
* Web开发程序员;
* Java程序员;
* Java EE开发工程师;
* 想提高项目开发水平的人员;
* 专业培训机构的学员;
* 高校相关专业的学生。
配书资源获取方式
本书涉及的所有源代码需要读者自行下载。请在机械工业出版社华章分社的网站(www.hzbook.com)上搜索到本书,然后单击“资料下载”按钮,即可在本书页面上找到下载链接进行下载。
售后支持
读者阅读本书时若有疑问,可以发送电子邮件到hzbook2017@163.com获得帮助。另外,书中若有疏漏和不当之处,也请读者及时反馈,以便后期修订。
致谢
历经半年的努力,终于完成了本书的创作。在此过程中,妻子程程给了我很大的鼓励,在此特别感谢她!另外,也把本书送给我未来的宝宝,希望他(她)将来健康快乐!后感谢读者朋友们选择了本书,技术的学习永无止境,让我们共同成长吧!
张科
本书特色
多角度:涵盖设计思想、组件功能、源码解析和开发技巧;
多层次:涵盖开发、测试、安全、扩展、部署和监控;
多示例:详解100多个示例和1个完整的大型项目案例;
全流程:涵盖Maven搭建、数据库设计、数据持久化和项目打包部署。
前言
第1章 Spring和Spring MVC基础知识1
1.1 揭开Spring的面纱1
1.1.1 Spring的功能模块1
1.1.2 Spring的7大优点2
1.1.3 Spring的生态圈3
1.2 搭建Spring开发环境3
1.2.1 Maven的优势和标准目录结构4
1.2.2 Maven的下载和安装5
1.2.3 搭建Eclipse开发环境6
1.2.4 搭建IntelliJ IDEA开发环境8
1.2.5 实战:个Hello World项目9
1.3 Spring常用注解介绍12
1.4 简析Spring MVC的请求流程13
1.5 小结14
第2章 Spring Boot从零入门15
2.1 为什么使用Spring Boot15
2.2 实战:创建个Spring Boot项目16
2.3 Spring Boot项目的一些基础配置18
2.3.1 判断一个项目是否为Spring Boot项目18
2.3.2 自定义启动Banner19
2.3.3 多环境配置19
2.3.4 其他配置21
2.4 构建Restful API21
2.4.1 Restful架构风格21
2.4.2 认识Jersey Restful22
2.4.3 实战:Jersey Restful与Spring Boot集成23
2.5 接口测试24
2.5.1 实战:使用Postman测试接口25
2.5.2 认识Swagger2 UI28
2.5.3 实战:项目集成Swagger2实现可视化接口29
2.6 使用Lombok来优雅地编码33
2.6.1 认识Lombok插件33
2.6.2 安装Lombok插件33
2.6.3 实战:使用Lombok插件36
2.7 小结41
第3章 数据持久化42
3.1 认识Spring Data JPA与ORM42
3.2 Spring Boot Validate参数校验42
3.2.1 传统的if…else校验43
3.2.2 实战:现代的Spring Boot Validate校验44
3.2.3 Validate校验常用的注解46
3.3 实战:使用Spring Data JPA保存数据47
3.4 JPA与SQL语法50
3.5 小结51
第4章 Spring Boot的Web应用开发52
4.1 Spring Boot对Web开发的支持52
4.2 模板引擎53
4.2.1 为什么放弃JSP模板引擎54
4.2.2 选择Thymeleaf模板引擎55
4.2.3 实战:使用Thymeleaf模板引擎55
4.2.4 简介:Thymeleaf的基础语法57
4.3 文件上传59
4.3.1 实战:使用J2EE实现文件上传59
4.3.2 解析文件上传的源码61
4.4 过滤器、监听器和拦截器64
4.4.1 过滤器、监听器和拦截器简介64
4.4.2 过滤器与拦截器的区别65
4.4.3 实战:使用过滤器过滤请求信息65
4.4.4 实战:使用拦截器处理请求信息67
4.4.5 事件的发布和监听70
4.5 异常的处理74
4.5.1 异常的分类75
4.5.2 @ControllerAdvice和@ExceptionHandler的使用75
4.5.3 实战:统一异常处理76
4.6 Web缓存利器Redis的应用79
4.6.1 Redis的应用场景79
4.6.2 Redis的安装和使用80
4.6.3 Redis的命令80
4.6.4 实战:在Spring Boot项目中集成Redis83
4.7 小结85
第5章 Spring Boot的 Security安全控制86
5.1 认识Spring Security86
5.2 应用Spring Security87
5.2.1 实战:Spring Security入门87
5.2.2 Spring Security适配器92
5.2.3 实战:用户授权96
5.2.4 Spring Security核心类97
5.2.5 Spring Security的验证机制98
5.3 企业项目中的Spring Security操作99
5.3.1 实战:基于JPA的Spring Boot Security操作100
5.3.2 实战:基于MyBatis的Spring Boot Security操作109
5.4 小结112
第6章 Spring Boot扩展113
6.1 日志管理114
6.1.1 常用的日志框架114
6.1.2 日志的输出级别116
6.1.3 实战:日志管理之使用AOP记录日志117
6.1.4 实战:日志管理之自定义Appender124
6.2 定时任务128
6.2.1 实现定时任务的5种方式128
6.2.2 实战:基于JDK方式实现简单定时128
6.2.3 实战:基于Spring Task实现定时任务131
6.2.4 实战:基于Quartz实现定时调度132
6.3 发送邮件135
6.3.1 SMTP与发送一封邮件的步骤135
6.3.2 实战:使用Java Mail发送邮件136
6.3.3 实战:Spring Boot集成邮件发送140
6.3.4 扩展知识——邮件格式143
6.4 应用Web Service143
6.4.1 Web Service简介143
6.4.2 Spring Web Service简介145
6.4.3 实战:Spring Web Service服务端发布项目146
6.4.4 实战:Spirng Web Service客户端调用项目149
6.5 应用Web Socket155
6.5.1 Web Socket简介155
6.5.2 Web Socket的属性和方法157
6.5.3 实战:Web Socket通信158
6.6 小结164
第7章 项目测试166
7.1 单元测试166
7.1.1 为什么要做单元测试166
7.1.2 单元测试有哪些内容167
7.1.3 常规的JUnit测试168
7.1.4 Mock测试174
7.2 集成测试179
7.2.1 集成测试自动配置179
7.2.2 测试Spring MVC入口180
7.3 性能测试185
7.3.1 性能测试的