猜你喜欢
深入实践Spring Boot

深入实践Spring Boot

书籍作者:陈韶健 ISBN:9787111550884
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:4616
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书是Spring Boot领域的经典著作,从技术、实践和原理3个维度对Spring Boot进行了系统且深入的讲解。作者是Spring Boot领域的资深专家,有超过15年的IT行业从业经验。
技术维度
第一部分(1~5章),针对性地介绍了Spring Boot入门、数据库的使用和访问性能提升、界面设计、安全设计等重要技术知识,以实用性为主,旨在帮助读者快速掌握Spring Boot开发方法和精髓,尽快融入生产实践中。
实践维度
第二部分(6~9章),用生产环境中的实际案例讲解了如何使用Spring Boot开发分布式应用和云应用,以及如何用微服务构建高可用的服务平台,实践性极强。
原理维度
第三部分(10~12章),从源码层面着重分析了Spring Boot的程序加载、自动配置、数据管理、Spring Cloud的配置管理、发现服务和负载均衡服务等核心功能的实现原理,旨在帮助读者能更深刻地理解Spring Boot开发,掌握其精髓。

作者简介

陈韶健(Chen Shaojian)
华阳通信技术总监,有超过15年的IT行业从业经验。从普通的程序开发到系统分析、架构设计,从服务器的组建、维护到系统性能的优化和安全策略实施等,都积累了相当丰富的实践经验。
尤其擅长Java和C#技术,有着深入的实践经验。在数据库使用和分布式应用系统的开发和实施方面也有深入的研究和探讨,并取得了丰硕的成果。
利用Spring Boot进行了大量的项目实践,对其有深入的理解。

编辑推荐
适读人群 :适合初中级编程人员阅读

超过15年IT行业从业经验的Spring Boot专家撰写,系统讲解Spring Boot的各项关键技术
结合实际生产环境讲解Spring Boot分布式应用开发及高性能服务平台搭建
深入剖析Spring Boot核心功能的源码实现


简单易用的Spring Boot,无疑是Java开发初学者的指路明灯,同时也是资深Java开发者的得力助手。快速开发是研发Spring Boot的初衷,这不但是一个开发团队的终生追求,也是一个企业解放生产力、提高生产效率的保障。
Spring Boot的组件化整合规则,完美地整合了云应用开发工具,使其在云计算领域中处于领先地位,为创建高可用和高性能的服务提供了更加简便和快捷的方法。
Spring Boot是从Spring框架发展起来的,所以对于使用Spring框架的庞大用户群体来说,随着Spring Boot的普及使用,将使众多开发者成为它的拥趸。
本书以丰富而又切合生产实际的实例,通过循序渐进的方式以及通俗易懂的语言描述,引领你全面而深入地掌握Spring Boot这一开发框架的使用方法,使你在愉悦地体验一种前所未有的开发实践之后,将所学快速地融入到实际应用之中。

前言

  Spring Boot作为Java编程语言的一个全新开发框架,在国内外才刚刚兴起,还未得到普及使用。相比于以往的一些开发框架,Spring Boot不但使用更加简单,而且功能更加丰富,性能更加稳定而健壮。使用Spring Boot开发框架,不仅能提高开发速度,增强生产效率,从某种意义上,可以说是解放了程序员的劳动,而且一种新技术的使用,更能增强系统的稳定性和扩展系统的性能指标。本书就是本着提高开发效率,增强系统性能,促进新技术的普及使用这一目的而写的。
  Spring Boot是在Spring框架基础上创建的一个全新框架,其设计目的是简化Spring应用的搭建和开发过程,它不但具有Spring的所有优秀特性,而且具有如下显著的特点:
  为Spring开发提供更加简单的使用和快速开发的技巧。
  具有开箱即用的默认配置功能,能根据项目依赖自动配置。
  具有功能更加强大的服务体系,包括嵌入式服务、安全、性能指标、健康检查等。
  绝对没有代码生成,可以不再需要XML配置,即可让应用更加轻巧和灵活。
  Spring Boot对于一些第三方技术的使用,提供了非常完美的整合,使你在简单的使用中,不知不觉运用了非常高级和先进的技术。
  虽然Spring Boot具有这么多优秀的特性,但它使用起来并不复杂,而且非常简单,所以不管是Java程序开发初学者,还是经验丰富的开发人员,使用Spring Boot都是一个理想的选择。
  Spring Boot发展迅速,自从2014年4月发布了1.0.0版本,至今已经发布了1.4.0正式版。现在,Spring Boot正在不同的角落中悄然兴起,估计用不了多久,它将成为Java开发的又一个热潮,为众多Java开发者追捧。
  本书将以一些非常切合生产实际的应用实例,带你一起使用Spring Boot框架,开始一段愉快的快速开发和探索之旅。
  关于本书本书以丰富的实例,介绍了如何使用Spring Boot开发框架进行基础应用和分布式应用等方面的开发,并且介绍了如何使用Spring Boot开发的应用搭建一个高性能的服务平台,同时还对Spring Boot的一些核心功能的源代码进行了分析,从而加深对Spring Boot的理解。书中对从最基本的入门知识,到数据库的使用,以及界面设计、安全设计等领域都做了详细的介绍和探讨,并在分布式应用系统领域,以平台级应用系统的实例,介绍了如何创建和使用SSO管理系统、分布式文件系统,如何使用Spring Cloud进行云应用方面的开发,以及如何使用Docker发布和构建高可用的分布式系统服务平台。同时,对Spring Boot的程序加载、自动配置、数据管理,和Spring Cloud的配置管理、发现服务和负载均衡服务等核心功能的源代码做了深入剖析,这样在认识其实现原理的基础上,能更好地使用其相应的功能。
  全书分为三个部分:第一部分(第1~5章)介绍基础应用方面的开发,包含简单入门知识、数据库使用、界面设计和安全设计等内容;第二部分(第6~9章)介绍了Spring Boot在分布式系统开发和云应用开发等方面的应用以及使用微服务构建高可用的服务平台;第三部分(第10~12章)对Spring Boot的程序加载、自动配置和数据管理的实现原理,以及Spring Cloud的配置管理、发现服务和负载均衡服务等实现原理进行了深入的剖析。
  本书章节编排第1章为Spring Boot入门,介绍开发环境的搭建和开发工具的选择及安装配置,并使用一个非常简单的实例,说明如何轻易地使用Spring Boot开发框架。
  第2章使用Spring Boot框架演示了以不同于以往的方式,以及如何轻易地使用数据库,并实际演示使用MySQL、MongoDB、Redis和Neo4j等数据库。
  第3章使用Thymeleaf模板结合一些流行的JavaScript插件,介绍了使用Spring Boot进行界面设计的方法和技巧。
  第4章对使用Spring Boot提高传统关系型数据库的性能方面做了一些探讨和尝试,并扩展了使用JPA资源库的功能。
  第5章介绍了如何使用Spring Boot结合Spring Security进行安全设计,包括登录认证和角色管理、权限管理等内容。
  第6章介绍如何使用Spring Security结合OAuth2进行SSO(Single Sign On)的设计,并演示如何在分布式应用系统中使用认证授权和安全管理的功能。
  第7章介绍如何使用Spring Boot框架结合分布式文件系统FastDFS,并使用定制方式和富文本编辑器的方式演示了使用图片上传和建立本地图片库的方法。
  第8章介绍云应用开发,包括配置管理、发现服务和监控服务的使用,以及如何使用动态路由和断路器的功能,创建高可用的微服务应用。
  第9章介绍如何使用Docker引擎和docker-compose工具来发布应用和管理服务,以及如何构建一个高性能的服务平台和怎样使用Docker实施负载均衡。
  第10章分析了Spring Boot的应用程序加载和自动配置原理,以及如何以改造加载配置的方式来提高应用的性能。
  第11章分析了Spring Boot使用数据库的实现原理,并演示怎样利用一些技术手段提高和扩展访问数据库的功能。
  第12章简要分析了微服务中配置管理、发现服务和负载均衡服务的实现原理和部分核心源代码,并使用一个实例说明配置管理中分布式消息的实现机制和原理。
  附录A~附录D介绍了Neo4j、MongoDB、Redis、RabbitMQ等服务器的安装、配置和基本使用方法。
  读者对象本书适于所有Java编程语言开发人员,所有对Spring Boot感兴趣并希望使用Spring Boot开发框架进行开发的人员,已经使用过Spring Boot框架但希望更好地使用Spring Boot的开发人员,以及系统设计师、架构师等设计人员。同时,本书对运维人员和DBA等也具有一定的参考价值。
  实例代码本书的实例代码可以通过https://github.com/chenfromsz?tab=repositories查看和下载,推荐根据每章的提示使用IntelliJ IDEA通过GitHub检出各章的实例工程,这样可以保留原来工程的配置,并且能够直接使用。
  反馈与勘误读者如有反馈意见可以通过https://github.com/chenfromsz/correct/issues发起新话题与作者进行交互,在这也可能会发布一些勘误信息,以便纠正不可避免的错误。
  致谢首先,非常感谢华阳信通公司,虽然本书的编写过程大都在业余时间完成,但是公司强大的平台给本书的实例提供了更加方便的分享、验证和测试条件。同时在本书的编写过程中,也得到了我们的开发团队和众多朋友的大力支持和帮助,在此表示衷心的感谢!最后感谢华章公司的杨福川和李艺,他们在本书编辑的过程中,提出了一些宝贵而有益的建议,并为本书的出版做了许多工作。
  由于时间仓促和水平有限,书中难免出现一些纰漏或不正确的地方,敬请大家批评指正!

目录

前 言
第一部分 基础应用开发
第1章 Spring Boot入门 3
1.1 配置开发环境 3
1.1.1 安装JDK 3
1.1.2 安装InterlliJ IDEA 4
1.1.3 安装Apache Maven 4
1.1.4 安装Git客户端 5
1.2 创建项目工程 8
1.2.1 使用Maven新建项目 8
1.2.2 使用Spring Initializr新建项目 11
1.3 使用Spring Boot 14
1.3.1 Maven依赖管理 14
1.3.2 一个简单的实例 17
1.4 运行与发布 18
1.4.1 在IDEA环境中运行 18
1.4.2 将应用打包发布 19
1.5 关于Spring Boot配置 22
1.6 小结 23
第2章 在Spring Boot中使用数据库 24
2.1 使用MySQL 24
2.1.1 MySQL依赖配置 25
2.1.2 实体建模 25
2.1.3 实体持久化 27
2.1.4 MySQL测试 29
2.2 使用Redis 33
2.2.1 Redis依赖配置 33
2.2.2 创建Redis服务类 34
2.2.3 Redis测试 36
2.3 使用MongoDB 38
2.3.1 MongoDB依赖配置 38
2.3.2 文档建模 39
2.3.3 文档持久化 40
2.3.4 MongoDB测试 41
2.4 使用Neo4j 43
2.4.1 Neo4j依赖配置 43
2.4.2 节点和关系实体建模 43
2.4.3 节点实体持久化 45
2.4.4 Neo4j测试 46
2.5 小结 49
第3章 Spring Boot界面设计 50
3.1 模型设计 50
3.1.1 节点实体建模 51
3.1.2 关系实体建模 51
3.1.3 分页查询设计 52
3.2 控制器设计 53
3.2.1 新建控制器 53
3.2.2 查看控制器 53
3.2.3 修改控制器 54
3.2.4 删除控制器 55
3.2.5 分页查询控制器 55
3.3 使用Thymeleaf模板 56
3.3.1 Thymeleaf配置 56
3.3.2 Thymeleaf功能简介 57
3.4 视图设计 60
3.4.1 列表视图设计 60
3.4.2 新建视图设计 64
3.4.3 查看视图设计 68
3.4.4 修改视图设计 70
3.4.5 删除视图设计 72
3.5 运行与发布 73
3.6 小结 74
第4章 提高数据库访问性能 75
4.1 使用Druid 75
4.1.1 配置Druid依赖 76
4.1.2 关于XML配置 76
4.1.3 Druid数据源配置 77
4.1.4 开启监控功能 78
4.2 扩展JPA功能 80
4.2.1 扩展JPA接口 81
4.2.2 装配自定义的扩展接口 83
4.2.3 使用扩展接口 85
4.3 使用Redis做缓存 86
4.3.1 使用Spring Cache注解 86
4.3.2 使用RedisTemplate 88
4.4 Web应用模块 91
4.4.1 引用数据管理模块 91
4.4.2 Web应用配置 92
4.5 运行与发布 94
4.6 小结 95
第5章 Spring Boot安全设计 96
5.1 依赖配置管理 96
5.2 安全策略配置 97
5.2.1 权限管理规则 98
5.2.2 登录成功处理器 99
5.2.3 防攻击策略 100
5.2.4 记住登录状态 102
5.3 登录认证设计 103
5.3.1 用户实体建模 103
5.3.2 用户身份验证 104
5.3.3 登录界面设计 106
5.3.4 验证码验证 108
5.4 权限管理设计 109
5.4.1 权限管理配置 109
5.4.2 权限管理过滤器 110
5.4.3 权限配置资源管理器 111
5.4.4 权限管理决断器 112
5.5 根据权限设置链接 113
5.6 运行与发布 116
5.6.1 系统初始化 116
5.6.2 系统运行与发布 118
5.7 小结 119
第二部分 分布式应用开发
第6章 Spring Boot SSO 123
6.1 模块化设计 123
6.2 登录认证模块 124
6.2.1 使用OAuth2 124
6.2.2 创建数字证书 125
6.2.3 认证服务端配置 125
6.3 安全配置模块 128
6.4 SSO客户端 129
6.4.1 客户端配置 129
6.4.2 登录登出设计 130
6.5 共享资源服务 132
6.5.1 提供共享资源接口 133
6.5.2 使用共享资源 134
6.5.3 查询登录用户的详细信息 135
6.6 运行与发布 136
6.7 小结 138
第7章 使用分布式文件系统 139
7.1 FastDFS安装 139
7.1.1 下载安装包 141
7.1.2 安装服务 141
7.1.3 Tracker Server配置 142
7.1.4 Storage Server配置 145
7.1.5 启动服务 148
7.1.6 客户端测试 148
7.2 FastFDS客户端 149
7.2.1 客户端配置 150
7.2.2 客户端服务类 150
7.3 使用定制方式上传图片 151
7.3.1 实体建模 151
7.3.2 上传图片 152
7.4 使用富文本编辑器上传图片 156
7.4.1 使用富文本编辑器 156
7.4.2 实现文件上传 157
7.5 使用本地文件库 158
7.5.1 本地文件库建模 159
7.5.2 文件保存方法 159
7.5.3 文件库管理 161
7.6 运行与发布 163
7.7 小结 164
第8章 云应用开发 165
8.1 使用配置管理 166
8.1.1 创建配置管理服务器 167
8.1.2 使用配置管理的客户端 168
8.1.3 实现在线更新 171
8.1.4 更新所有客户端的配置 172
8.2 使用发现服务 174
8.2.1 创建发现服务器 174
8.2.2 使用发现服务的客户端配置 175
8.2.3 发现服务器测试 175
8.3 使用动态路由和断路器 176
8.3.1 依赖配置 176
8.3.2 共享REST资源 177
8.3.3 通过路由访问REST资源 180
8.3.4 使用断路器功能 182
8.3.5 路由器和断路器测试 183
8.4 使用监控服务 184
8.4.1 创建监控服务器 184
……