引言
很明显的一个现象,除了一些老项目,现在 Java 后端项目基本都是基于 Spring Boot 进行开发,毕竟它这么好用以及天然微服务友好。不夸张地说,Spring Boot 是 Java 后端领域最最最重要的技术之一,熟练掌握它对于 Java 程序员至关重要。使用Spring Boot开发框架,不仅能提高开发速度,增强生产效率,从某种意义上,可以说是解放了程序员的劳动,而且一种新技术的使用,更能增强系统的稳定性和扩展系统的性能指标。本书就是本着提高开发效率,增强系统性能,促进新技术的普及使用这一目的而写的。
全书分为三个部分:第一部分介绍基础应用方面的开发,包含简单入门知识、数据库使用、界面设计和安全设计等内容;第二部分介绍了Spring Boot在分布式系统开发和云应用开发等方面的应用以及使用微服务构建高可用的服务平台;第三部分对Spring Boot的程序加载、自动配置和数据管理的实现原理,以及SpringCloud的配置管理、发现服务和负载均衡服务等实现原理进行了深入的剖析。
目录
本书是Spring Boot领域的经典著作,从技术、实践和原理3个维度对Spring Boot进行了系统且深入的讲解。作者是SpringBoot领域的资深专家,有超过15年的IT行业从业经验。
技术维度
第一部分(1~5章),针对性地介绍了Spring Boot入门、数据库的使用和访问性能提升、界面设计、安全设计等重要技术知识,以实用性为主,旨在帮助读者快速掌握Spring Boot开发方法和精髓,尽快融入生产实践中。
第1章 Spring Boot入门
在使用Spring Boot框架进行各种开发体验之前,要先配置好开发环境。首先安装JDK,然后选择一个开发工具,如Eclipse IDE和IntelliJ IDEA (以下简称IDEA)都是不错的选择。对于开发工具的选择,本书极力推荐使用IDEA,因为它为Spring Boot提供了许多更好和更贴切的支持,本书的实例都是使用IDEA创建的。同时,还需要安装ApacheMaven和Git客户端。所有这些都准备好之后,我们就能开始使用Spring Boot了。
第2章 在Spring Boot中使用数据库
使用数据库是开发基本应用的基础。借助于开发框架,我们已经不用编写原始的访问数据库的代码,也不用调用JDBC ( Java Data Base Connectivity)或者连接池等诸如此类的被称作底层的代码,我们将在高级的层次上访问数据库。而Spring Boot更是突破了以前所有开发框架访问数据库的方法,在前所未有的更加高级的层次上访问数据库。因为Spring Boot包含-一个功能强大的资源库,为使用Spring Boot的开发者提供了更加简便的接口进行访问。
第3章 Spring Boot界面设计
用Spring Boot框架设计Web显示界面,我们还是使用MVC(Model View Controller,模型-视图-控制器)的概念,将数据管理、事件控制和界面显示进行分层处理,实现多层结构设计。界面设计,即视图的设计,主要是组织和处理显示的内容,界面上的事件响应最终交给了控制器进行处理,由控制器决定是否调用模型进行数据的存取操作,然后再将结果返回给合适的视图显示。
第4章 提高数据库访问性能
使用关系型数据库的应用系统的性能瓶颈最终还是数据库。随着业务的迅速增长,数据量会不断增大,会逐渐暴露出关系型数据库的弱点,即性能大幅下降。提升关系型数据库的访问性能是开发者的迫切任务。下面从程序开发角度,对提升数据库的访问性进行介绍和探讨。
第5章 Spring Boot安全设计
Web应用的安全管理,主要包括两个方面的内容:一方面是用户身份认证,即用户登录的设计;另一方面是用户授权,即一个用户在一个应用系统中能够执行哪些操作的权限管理。权限管理的设计一般使用角色来管理,即给一个用户赋予哪些角色,这个用户就具有哪些权限。本章主要使用spring-cloud-security来进行安全管理设计。下面首先了解安全设计的依赖配置管理。
实践维度
第二部分(6~9章),用生产环境中的实际案例讲解了如何使用Spring Boot开发分布式应用和云应用,以及如何用微服务构建高可用的服务平台,实践性极强。
第6章 Spring Boot SSO
一个企业级的应用系统可能存在很多应用系统,每个应用系统都需要设计安全管理,即实现用户的认证和访问授权,但是不可能为每一个应用系统都设计一套安全管理,这样不但耗时耗力,而且要做重复的工作,也不适宜建立统一的用户中心。这就需要使用单点登录( Single Sign On, SSO)的方式来建立一个登录认证系统,并且实现对用户的统一管理。 对于一个开放平台来说,SSO也能为合作伙伴提供用户的身份认证和授权管理。
第7章 使用分布式文件系统
几乎我们提供的实例工程中,最终都使用了打包成jar的方式进行发布,细心的读者可能会提出疑问,如果上传文件,如上传图片,应该怎样保存,保存在哪里?传统的做法一般都保存在Web服务器所在的机器中。这样把工程打包成war的方式进行发布,也是可以的。但是随着业务的日益发展,可能上传的文件会累积得越来越多,单独一台机器往往会不堪重负。对于大型的分布式系统来说,这种情况更加明显,而且再加上一些负载均衡的配置和服务,如果还将上传文件保存在Web服务所在的机器中,会显得越来越不合理,更不用说单台机器的容量和性能的问题。
第8章 云应用开发
2014年6月,Pivotal 团队正式发布了Spring Cloud 1.0.0 版本。Spring Cloud是一套云应用开发工具集,为分布式的微服务开发提供了一整套简单易用的使用工具。Spring Cloud主要包含配置管理、服务发现、动态路由、负载均衡、断路器、安全管理、事件总线、分布式消息等组件的开发工具包。
第9章 构建高性能的服务平台
使用Spring Cloud开发的微服务,其独立而又相对隔离的特性,与Docker的理念有异曲同工之妙,所以使用Docker来发布微服务,能够发挥其更大的优势,并且可以非常轻易地构建-一个高性能 和高可用的服务平台。
原理维度
第三部分( 10~12章),从源码层面着重分析了Spring Boot的程序加载、自动配置、数据管理、Spring Cloud的配置管理、发现服务和负载均衡服务等核心功能的实现原理,旨在帮助读者能更深刻地理解SpringBoot开发,掌握其精髓。
第10章 Spring Boot自动配置实现原理
通过前面章节的学习,我们掌握了使用Spring Boot框架进行实际应用开发的方法。在使用Spring Boot的过程中,我们时常会为一些看似简单,但实际上蕴藏了强大功能的实现而惊呼,下面就让我们来揭开它的神秘面纱,做到知其然,进而知其所以然。在认识Spring Boot的实现原理之后,我们在使用某些功能时,就能够做到心中有数,从而更好地使用它。
第11章 Spring Boot数据访问实现原理
SpringBoot的数据库管理功能非常强大,它到底可以支持哪些数据库,访问这些数据库的功能又是如何实现的,这些功能有没有欠缺或者需要扩展的地方,如果需要扩展应该如何改进?如果你对这些问题感兴趣,那么可以开始这一章的学习。
第12章 微服务核心技术实现原理
Spring Cloud是基于对Netlix开源组件进一步封装的一套云应用开发工具,可以用来开发各种微服务应用,它包含很多组件(或子项目)。
这份【Spring Boot分布式系统实践文档】文档共有281页,需要完整版的朋友,可以转发此文关注小编,私信小编【666】来获取!!
读者对象及实例代码
本书适于所有Java编程语言开发人员,所有对SpringBoot感兴趣并希望使用Spring Boot 开发框架进行开发的人员,已经使用过Spring Boot 框架但希望更好地使用Spring Boot的开发人员,以及系统设计师、架构师等设计人员。同时,本书对运维人员和DBA等也具有一定的参考价值。
推荐根据每章的提示使用IntelliJ IDEA通过GitHub检出各章的实例工程,这样可以保留原来工程的配置,并且能够直接使用。