书海网短评:
适读人群:适合初中级编程人员阅读 超过15年IT行业从业经验的SpringBoot专家撰写,系统讲解SpringBoot的各项关键技术 结合实际生产环境讲解SpringBoot分布式应用开发及高性能服务平
超过15年IT行业从业经验的SpringBoot专家撰写,系统讲解SpringBoot的各项关键技术
结合实际生产环境讲解SpringBoot分布式应用开发及高性能服务平台搭建
深入剖析SpringBoot核心功能的源码实现
简单易用的SpringBoot,无疑是Java开发初学者的指路明灯,同时也是资深Java开发者的得力助手。快速开发是研发SpringBoot的初衷,这不但是一个开发团队的终生追求,也是一个企业解放生产力、提高生产效率的保障。
SpringBoot的组件化整合规则,完美地整合了云应用开发工具,使其在云计算领域中处于领先地位,为创建高可用和高性能的服务提供了更加简便和快捷的方法。
SpringBoot是从Spring框架发展起来的,所以对于使用Spring框架的庞大用户群体来说,随着SpringBoot的普及使用,将使众多开发者成为它的拥趸。
《深入实践Spring Boot》以丰富而又切合生产实际的实例,通过循序渐进的方式以及通俗易懂的语言描述,引导你全面而深入地掌握SpringBoot这一开发框架的使用方法,使你在愉悦地体验一种亘古未有的开发实践之后,将所学快速地融入到实际应用之中。
《深入实践Spring Boot》是SpringBoot领域的经典著作,从技术、实践和原理3个维度对SpringBoot进行了系统且深入的讲解。作者是SpringBoot领域的资深专家,有超过15年的IT行业从业经验。
技术维度
第一部分(1~5章),针对性地介绍了SpringBoot入门、数据库的使用和访问性能提升、界面设计、安全设计等重要技术知识,以实用性为主,旨在帮助读者快速掌握SpringBoot开发方法和精髓,尽快融入生产实践中。
实践维度
第二部分(6~9章),用生产环境中的实际案例讲解了如何使用SpringBoot开发分布式应用和云应用,以及如何用微服务构建高可用的服务平台,实践性极强。
原理维度
第三部分(10~12章),从源码层面着重分析了SpringBoot的程序加载、自动配置、数据管理、SpringCloud的配置管理、发现服务和负载均衡服务等核心功能的实现原理,旨在帮助读者能更深刻地理解SpringBoot开发,掌握其精髓。
陈韶健(ChenShaojian)
华阳通信技术总监,有超过15年的IT行业从业经验。从普通的程序开发到系统分析、架构设计,从服务器的组建、维护到系统性能的优化和安全策略实施等,都积累了相当丰富的实践经验。
尤其擅长Java和C#技术,有着深入的实践经验。在数据库使用和分布式应用系统的开发和实施方面也有深入的研究和探讨,并取得了丰硕的成果。
利用SpringBoot进行了大量的项目实践,对其有深入的理解。
前 言
第一部分 基础应用开发
第1章 SpringBoot入门3
1.1 配置开发环境3
1.1.1 安装JDK3
1.1.2 安装InterlliJIDEA4
1.1.3 安装ApacheMaven4
1.1.4 安装Git客户端5
1.2 创建项目工程8
1.2.1 使用Maven新建项目8
1.2.2 使用SpringInitializr新建项目11
1.3 使用SpringBoot14
1.3.1 Maven依赖管理14
1.3.2 一个简单的实例17
1.4 运行与发布18
1.4.1 在IDEA环境中运行18
1.4.2 将应用打包发布19
1.5 关于SpringBoot配置22
1.6 小结23
第2章 在SpringBoot中使用数据库24
2.1 使用MySQL24
2.1.1 MySQL依赖配置25
2.1.2 实体建模25
2.1.3 实体持久化27
2.1.4 MySQL测试29
2.2 使用Redis33
2.2.1 Redis依赖配置33
2.2.2 创建Redis服务类34
2.2.3 Redis测试36
2.3 使用MongoDB38
2.3.1 MongoDB依赖配置38
2.3.2 文档建模39
2.3.3 文档持久化40
2.3.4 MongoDB测试41
2.4 使用Neo4j43
2.4.1 Neo4j依赖配置43
2.4.2 节点和关系实体建模43
2.4.3 节点实体持久化45
2.4.4 Neo4j测试46
2.5 小结49
第3章 SpringBoot界面设计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 使用Druid75
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 使用SpringCache注解86
4.3.2 使用RedisTemplate88
4.4 Web应用模块91
4.4.1 引用数据管理模块91
4.4.2 Web应用配置92
4.5 运行与发布94
4.6 小结95
第5章 SpringBoot安全设计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章 SpringBootSSO123
6.1 模块化设计123
6.2 登录认证模块124
6.2.1 使用OAuth2124
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 TrackerServer配置142
7.1.4 StorageServer配置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
……
SpringBoot作为Java编程语言的一个全新开发框架,在国内外才刚刚兴起,还未得到普及使用。相比于以往的一些开发框架,SpringBoot不但使用更加简单,而且功能更加丰富,性能更加稳定而健壮。使用SpringBoot开发框架,不仅能提高开发速度,增强生产效率,从某种意义上,可以说是解放了程序员的劳动,而且一种新技术的使用,更能增强系统的稳定性和扩展系统的性能指标。《深入实践Spring Boot》就是本着提高开发效率,增强系统性能,促进新技术的普及使用这一目的而写的。
SpringBoot是在Spring框架基础上创建的一个全新框架,其设计目的是简化Spring应用的搭建和开发过程,它不但具有Spring的所有优秀特性,而且具有如下显著的特点:
为Spring开发提供更加简单的使用和快速开发的技巧。
具有开箱即用的默认配置功能,能根据项目依赖自动配置。
具有功能更加强大的服务体系,包括嵌入式服务、安全、性能指标、健康检查等。
绝对没有代码生成,可以不再需要XML配置,即可让应用更加轻巧和灵活。
SpringBoot对于一些第三方技术的使用,提供了非常完美的整合,使你在简单的使用中,不知不觉运用了非常高级和先进的技术。
虽然SpringBoot具有这么多优秀的特性,但它使用起来并不复杂,而且非常简单,所以不管是Java程序开发初学者,还是经验丰富的开发人员,使用SpringBoot都是一个理想的选择。
SpringBoot发展迅速,自从2014年4月发布了1.0.0版本,至今已经发布了1.4.0正式版。现在,SpringBoot正在不同的角落中悄然兴起,估计用不了多久,它将成为Java开发的又一个热潮,为众多Java开发者追捧。
《深入实践Spring Boot》将以一些非常切合生产实际的应用实例,带你一起使用SpringBoot框架,开始一段愉快的快速开发和探索之旅。
关于《深入实践Spring Boot》《深入实践Spring Boot》以丰富的实例,介绍了如何使用SpringBoot开发框架进行基础应用和分布式应用等方面的开发,并且介绍了如何使用SpringBoot开发的应用搭建一个高性能的服务平台,同时还对SpringBoot的一些核心功能的源代码进行了分析,从而加深对SpringBoot的理解。书中对从最基本的入门知识,到数据库的使用,以及界面设计、安全设计等领域都做了详细的介绍和探讨,并在分布式应用系统领域,以平台级应用系统的实例,介绍了如何创建和使用SSO管理系统、分布式文件系统,如何使用SpringCloud进行云应用方面的开发,以及如何使用Docker发布和构建高可用的分布式系统服务平台。同时,对SpringBoot的程序加载、自动配置、数据管理,和SpringCloud的配置管理、发现服务和负载均衡服务等核心功能的源代码做了深入剖析,这样在认识其实现原理的基础上,能更好地使用其相应的功能。
《深入实践Spring Boot》分为三个部分:第一部分(第1~5章)介绍基础应用方面的开发,包含简单入门知识、数据库使用、界面设计和安全设计等内容;第二部分(第6~9章)介绍了SpringBoot在分布式系统开发和云应用开发等方面的应用以及使用微服务构建高可用的服务平台;第三部分(第10~12章)对SpringBoot的程序加载、自动配置和数据管理的实现原理,以及SpringCloud的配置管理、发现服务和负载均衡服务等实现原理进行了深入的剖析。
《深入实践Spring Boot》章节编排第1章为SpringBoot入门,介绍开发环境的搭建和开发工具的选择及安装配置,并使用一个非常简单的实例,说明如何轻易地使用SpringBoot开发框架。
第2章使用SpringBoot框架演示了以不同于以往的方式,以及如何轻易地使用数据库,并实际演示使用MySQL、MongoDB、Redis和Neo4j等数据库。
第3章使用Thymeleaf模板结合一些流行的JavaScript插件,介绍了使用SpringBoot进行界面设计的方法和技巧。
第4章对使用SpringBoot提高传统关系型数据库的性能方面做了一些探讨和尝试,并扩展了使用JPA资源库的功能。
第5章介绍了如何使用SpringBoot结合SpringSecurity进行安全设计,包括登录认证和角色管理、权限管理等内容。
第6章介绍如何使用SpringSecurity结合OAuth2进行SSO(SingleSignOn)的设计,并演示如何在分布式应用系统中使用认证授权和安全管理的功能。
第7章介绍如何使用SpringBoot框架结合分布式文件系统FastDFS,并使用定制方式和富文本编辑器的方式演示了使用图片上传和建立本地图片库的方法。
第8章介绍云应用开发,包括配置管理、发现服务和监控服务的使用,以及如何使用动态路由和断路器的功能,创建高可用的微服务应用。
第9章介绍如何使用Docker引擎和docker-compose工具来发布应用和管理服务,以及如何构建一个高性能的服务平台和怎样使用Docker实施负载均衡。
第10章分析了SpringBoot的应用程序加载和自动配置原理,以及如何以改造加载配置的方式来提高应用的性能。
第11章分析了SpringBoot使用数据库的实现原理,并演示怎样利用一些技术手段提高和扩展访问数据库的功能。
第12章简要分析了微服务中配置管理、发现服务和负载均衡服务的实现原理和部分核心源代码,并使用一个实例说明配置管理中分布式消息的实现机制和原理。
附录A~附录D介绍了Neo4j、MongoDB、Redis、RabbitMQ等服务器的安装、配置和基本使用方法。
读者对象《深入实践Spring Boot》适于所有Java编程语言开发人员,所有对SpringBoot感兴趣并希望使用SpringBoot开发框架进行开发的人员,已经使用过SpringBoot框架但希望更好地使用SpringBoot的开发人员,以及系统设计师、架构师等设计人员。同时,《深入实践Spring Boot》对运维人员和DBA等也具有一定的参考价值。
实例代码《深入实践Spring Boot》的实例代码可以通过https://github.com/chenfromsz?tab=repositories查看和下载,推荐根据每章的提示使用IntelliJIDEA通过GitHub检出各章的实例工程,这样可以保留原来工程的配置,并且能够直接使用。
反馈与勘误读者如有反馈意见可以通过https://github.com/chenfromsz/correct/issues发起新话题与作者进行交互,在这也可能会发布一些勘误信息,以便纠正不可避免的错误。
致谢首先,非常感谢华阳信通公司,虽然《深入实践Spring Boot》的编写过程大都在业余时间完成,但是公司强大的平台给《深入实践Spring Boot》的实例提供了更加方便的分享、验证和测试条件。同时在《深入实践Spring Boot》的编写过程中,也得到了我们的开发团队和众多朋友的大力支持和帮助,在此表示衷心的感谢!最后感谢华章公司的杨福川和李艺,他们在《深入实践Spring Boot》编辑的过程中,提出了一些宝贵而有益的建议,并为《深入实践Spring Boot》的出版做了许多工作。
由于时间仓促和水平有限,书中难免出现一些纰漏或不正确的地方,敬请大家批评指正!









