前 言
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是简化新Spring应用的初始搭建以及开发过程。在Java开发领域中,有很多著名框架都是Pivotal团队的产品,如:Spring框架及其衍生框架、缓存Redis、消息队列框架RabbitMQ、Greenplum数据库等。还有Tomcat、Apache Http Server> Groovy里的一些顶级开发者、DevOps理论的提出者都属于Pivotal团队。
本电子书籍可以说是我对使用Spring Boot + Kotlin进行服务端开发的实战和思考过程的粗浅总结。通过本电子书籍的写作,加深了我对Spring Boot框架和Kotlin编程语言的理解,我深刻体会到了学无止境的含义。过程也是我系统学习与思考的过程,如果能够对你有所帮助,将不腳慰。
介绍如何使用Spring Boot 框架快速开发企业级应用。分为三大部分,共20章。
建议初学者最好按照章节顺序来学习本文档。如果想直接使用Spring Boot框架进行项目的实战,可以直接进入二部分,如果对Spring Boot应用的监控、测试与运维感兴趣,那么可以从第三部分直接开始学习。
福利提醒:获取最新版的SpringBoot开发实战电子版,我的学习笔记思维,面试题目答案解析,架构脑图学习路线免费分享
即可打包获取哦!(免费的啦~)
第一部分"Spring Boot框架基础”包含第1~3章,
介绍Spring Boot框架的特性,并展示了快速建立HelloWorld的Web MVC示例,介绍怎样通过自动配置实现极简化的Spring应用程序开发。
- 第1章 Spring Boot简介
Spring Boot是一个名词,反过来念就是“ Boot Spring”,是一个动宾结构的词语,意即:“起飞吧,Spring ! M o这正是Spring Boot框架设计的初心所在。自始至终,Spring都在努力使开发者能够“极简” “快速”地创建并开发应用。
- 第2章 快速开始HelloWorld
Spring Boot 可以说是 Spring 践行"约定优于配置”(Convention Over Configuration)理念的极佳范例。“Spring Boot无它,唯Spring”是也。
- 第3章 深入理解Spring Boot自动配置
为了更加鲜明地体会到Spring Boot带来的改变,我们首先介绍了一个传统的基于SSM的Java Web项目的完整开发过程,然后使用Spring Boot来完成同样的工作。通过对比学习,加深理解Spring Boot是怎样通过自动配置实现“极简化配置”的。仅供非商业用途或交流学习使用
第二部分"Spring Boot项目综合实战”,包含第4~17章
介绍了大量相关项目案例,并给出了案例代码。如集成JPA数据库层,Gradle插件应用,自定义Web MVC配置,AOP编程,集成SpringSecurity安全开发,集成React.js开发前后端分离项目,任务调度与邮件服务开发,集成WebFlux开发响应式Web应用,Spring Boot缓存,使用Zuul 开发 API Gateway, Spring Boot 日志应用等。
- 第4章 Spring Boot集成MyBatis数据库层开发
使用MyBatis可以非常灵活地实现SQL,同时有非常实用的MyBatis Generator代码生成工具和简单方便的分页插件PageHelper帮助开发者完成工作。综合使用基于XML的Mapper文件和注解的方式,可使dao层代码的开发更加高效。但是,由于MyBatis毕竟还是“半自动化”的ORM框架,在一些简单通用的场景下(例如,没有复杂条件查询),我们更加愿意去使用“自动化”的ORM框架。
- 第5章 Spring Boot集成JPA数据库层开发
使用Spring Data JPA可以用极简的代码快速实现功能丰富的dao层代码。同时,还可以通过JPQL灵活编写实现SQL查询代码,使用丰富的级联注解快速实现多表级联查询的逻辑。我们不再需要像MyBatis那样单独去配置MyBatis Generator代码生成工具和分页插件PageHelpero这一切由Spring Data JPA和IDEA的Database数据库工具帮我们完成。本章中我们是从数据库表来生成实体类代码,在下一章中我们演示如何使用代码自动创建数据表(这种方式在项目开发测试阶段非常有用),同时开发一个Gradle插件来自动生成entity层、dao层‘service层的原型代码。
- 第6章 Spring Boot Gradle插件应用开发
在软件开发的过程中,会有很多重复性的手工劳动,例如构建、打包、新建源码文件等操作。如果我们能够通过自己开发工具、插件的方式来实现这些操作的自动化,想必会大大提升工作效率。如RubyonRails、Grails、React、SpringRoo等框架都专门提供了快速开发项目的脚手架工具。在本章中,我们就开发了一个Gradlekor插件,通过输入实体类名自动生成了通常所需要entity、dao> service> controller层的模板代码,大大节省了新建源码文件的手工劳动。这个思想值得借鉴。
- 第7章 使用Spring MVC开发Web应用
Spring MVC是Spring框架自己提供的Web框架,基于Spring框架、Servlet,釆用了“模型-视图-控制器”(MVC)架构模式实现。Spring MVC提供了丰富的注解和方便的功能特性,使得我们可以构建灵活和松耦合的服务端Web应用程序。在Spring体系中,Spring框架核心是“引擎”,而Spring MVC是基于Spring的MVC框架,Spring Boot是一套快速开发框架。Kotlin则是助力快速编码开发的强大语言,可以与Spring框架无缝集成使用。基于Kotlin + Spring Boot的技术栈无疑是Java企业级应用服务端开发的极佳选择。
- 第8章 Spring Boot自定义Web MVC配置
通常情况下,我们并不需要重新定义Spring Boot中的默认配置。但是,Spring Boot在提供了一套默认的配置方案值之外,仍然完美支持灵活定制配置我们的应用。在Servlet 3.0之前我们都是使用web.xml进行配置中,需要增加Servlet、Filter或者Listener时都是在web.xml增加相应的配置,使用起来比较烦琐。在Spring Boot中只需使用几个简单的注解即可完成注册Servlet、Filter, Listener,非常极简。
- 第9章 Spring Boot中的AOP编程
本章使用Spring Boot + Spring MVC基于Filter过滤器和AOP切面实现了一个简单的用户登录注册、用户鉴权和权限控制的应用实例。通过本章的学习,我们可以深入了解Filter过滤器和AOP切面编程在编程实践中的应用。同时,还用实例介绍了 Spring MVC中如何实现后端数据的校验功能。
- 第10章 Spring Boot集成Spring Security安全开发
通过本章的学习,我们可以发现Spring Boot集成Security开发非常方便。Spring Security1 = 1主要做两件事:认证,授权。Spring Security是一个强大的和高度可定制的身份验证和访问控制框架。Spring Security为基于Java EE的企业应用程序提供一个全面的解决方案。
- 第11章 Spring Boot集成React.js开发前后端分离项目
前后端分离可谓大势所趋。让专业的前端去做前端的事情,后端就专注于后端业务逻辑的实现。前后端分离和微服务一样,渐渐地影响了新的大型系统的架构。微服务和前后端分离架构的理念是相通的:解耦一耦复杂的业务逻辑,解耦架构。前后端分离意味着,前后端之间使用JSON数据接口来通信,前端可以独立于后端项目的进度依赖。后端选用的技术栈不影响前端。前端技术栈可以充分发挥React、Vue、Node.js, ES6/7等带来的开发
- 第12章 任务调度与邮件服务开发
通过本章的学习,我们已经知道如何使用Spring Boot来开发动态定时任务、实现任务的异步执行,以及开发邮件服务。在系统功能中,我们经常会发送一些邮件通知给用户,可以看到使用Spring Boot开发邮件服务也非常简单。
- 第13章 Spring Boot集成WebFlux开发响应式Web应用
Spring Web MVC是一个命令式的编程框架,可以很方便地进行开发和调试。在很多情况下,命令式的编程风格就可以满足,但当我们的应用需要高可伸缩性,那么Reactive非堵塞方式是最适合的。所以,需要根据实际情况去决定釆用Spring 5 Reactive或者是SpringWeb MVC命令式框架。
- 第14章 Spring Boot缓存
通常情况下,使用内置的Spring Cache只适用于单体应用,因为这些缓存的对象是存储在内存中的。在大型分布式的系统中,缓存对象往往会非常大,这个时候我们就会有专门的缓存服务器(集群)来存储这些数据了,例如Rediso我们可以把一些经常査询的数据放到Redis中缓存起来,不用每次都查询数据库。这样也不用直接占用大量内存了。关于Redis的使用我们将在下一章中介绍。
- 第15章 使用Spring Session集成Redis实现Session共享
我们在Spring Session的基础上完成了 Spring Boot应用的水平扩展。通过SpringBoot + Redis来实现Session的共享非常简单,而且用处也极大,配合nginx进行负载均衡,便能实现分布式的应用了。
- 第16章 使用Zuul开发API Gateway
使用API Gateway可以将"1对N"问题转换成了 "1对1”问题,同时在请求到达真正的服务之前,可以做一些预处理工作。API Gateway可以完成诸如鉴权、流量控制、系统监控、页面缓存等功能,使用Spring Boot加上Spring Cloud "全家桶”来实现微服务架构无疑是一种相当不错的选择。
- 第17章 Spring Boot日志
Spring Boot集成logback日志框架非常简单。同时,使用基于Groovy DSL的logback.groovy配置文件,风格简洁优雅。使用spring.pTofile配置多环境(dev、dailyprod等)的日志配置文件也非常简单方便。通过配置jmxConfigurator可以在jconsole管理后台动态修改系统的日志级别。
第III部分"Spring Boot系统监控、测试与运维”包含第18~20章
详细介绍如何高效部署运维Spring Boot应用,并给出了综合案例。
- 第18章 Spring Boot应用的监控:Actuator与Admin
Spring Boot Actuator提供了强大的应用自省功能,提供了丰富的端点信息,覆盖SpringBoot应用程序运行的方方面面。同时,结合可视化的Spring Boot Admin管理界面,一切显得如此“高大上”。而在此过程中,我们只需要极简的几步配置即可完成这些事情。这正是Spring Boot的"初心”所在。
- 第19章 Spring Boot应用的测试
本章介绍了 Spring Boot项目如何测试。Spring Boot应用对Web层测试提供强大的支持:采用MockMvc方式测试Web请求,根据传递的不同参数以及请求返回对象反馈信息进行验证测试。另外,针对JSON数据接口,使用JsonPath可以方便地进行JSON数据结果的校验。
- 第20章 Spring Boot应用Docker化
本章简单介绍了 Spring Boot项目的打包、分环境运行、生产运维等操作。通常,在企业项目实践中,会实现一套Spring Boot应用部署发布的自动化运维平台工具。本章还给出了一个完整的Spring Boot项目Docker化的实战案例。
由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
获取方式:
我的学习笔记思维,面试题目答案解析,架构脑图学习路线免费分享