新書推薦:
《
禅心与箭术:过松弛而有力的生活(乔布斯精神导师、世界禅者——铃木大拙荐)
》
售價:NT$
301.0
《
先进电磁屏蔽材料——基础、性能与应用
》
售價:NT$
1010.0
《
可转债投资实战
》
售價:NT$
454.0
《
王氏之死(新版,史景迁成名作)
》
售價:NT$
250.0
《
敢为天下先:三年建成港科大
》
售價:NT$
352.0
《
长高食谱 让孩子长高个的饮食方案 0-15周岁儿童调理脾胃食谱书籍宝宝辅食书 让孩子爱吃饭 6-9-12岁儿童营养健康食谱书大全 助力孩子身体棒胃口好长得高
》
售價:NT$
214.0
《
身体自愈力:解决内在病因的身体智慧指南
》
售價:NT$
449.0
《
非言语沟通经典入门:影响人际交往的重要力量(第7版)
》
售價:NT$
560.0
|
編輯推薦: |
本书是一本突出实战的Spring Boot 2.x专业著作,由一线知名互联网公司资深开发工程师精心编写。
本书从零开始,引导读者循序渐进地掌握Spring Boot在Web开发中的各种技术,既注重基础、Spring Boot背后
的原理和执行流程,又突出Spring Boot与各种热点技术的整合应用,如Spring Boot集成MyBatis、ActiveMQ、MongoDB、Redis缓存、Zookeeper、Log4J日志等。此外,还介绍了微服务的多环境配置与部署、微服务的容
器化、微服务测试等当前微服务开发中的必备技术,本书*后还给出了一个高并发秒杀系统的开发项目。
本书的目标不仅仅使读者掌握Spring Boot的使用,同时能够掌握在Spring Boot的基础上整合各种流行技术开发
自己的Web应用。
|
內容簡介: |
本书深入浅出地介绍了Spring Boot 2.x在Web应用开发中的各种技术。全书共21章,第1章由零开始,引导读者快速搭建Spring Boot开发环境,为之后Spring Boot的探险之旅奠定基础。第2章、第3章、第10章和第13章介绍了Spring Boot的数据访问应用,包括Spring Boot集成Druid、Spring Data JPA和MyBatis以及快速访问MySQL和MongoDB数据库。第4~6章,介绍了Spring Boot集成Thymeleaf模板引擎、事务及拦截器和监听器的应用。第7~9章介绍Spring Boot使用Redis缓存和Quartz定时器、集成Log4J日志框架和发送Email邮件。第11~12章介绍Spring Boot集成ActiveMQ、异步调用和全局异常使用。第14~15章介绍Spring Boot应用监控和应用安全Security。第16~17章介绍Spring Boot微服务在Zookeeper中的注册、Dubbo的使用、多环境配置和使用以及在Tomcat中的部署应用。第18~20章主要探索Spring Boot的容器化、单元测试以及背后的原理和执行流程。第21章以秒杀系统为例,介绍Spring Boot在项目开发中的应用。 本书既介绍了Spring Boot背后的原理和执行流程,又突出了Spring Boot与各种热点技术的整合应用,适用于所有Java编程语言开发人员、Spring Boot开发爱好者以及计算机专业的学生等,也很适合作为培训机构与大专院校的教学用书。
|
關於作者: |
黄文毅 CSDN博客专家,高级软件工程师。先后就职于厦门星耀蓝图、上海美团等科技公司,目前就职于厦门美图科技有限公司,从事Java开发工作。具有丰富的软件开发经验,熟悉Java、高并发、大数据及相关软件架构。出版《公布式微服务架构:原理与实践》《Spring 5企业级开发实战》(与人合著)《Spring MVC MyBatis快速开发与项目实战》等多部技术图书。
|
目錄:
|
目录 第1章 第一个Spring Boot项目 1 1.1 Spring Boot开发环境准备 1 1.1.1 安装JDK 1 1.1.2 安装Intellij IDEA 3 1.1.3 安装Apache Maven 3 1.2 一分钟快速搭建Spring Boot项目 5 1.2.1 使用Spring Initializr新建项目 5 1.2.2 测试 7 1.2.3 Spring Boot三种启动方式 8 1.3 Spring Boot文件目录介绍 9 1.3.1 工程目录 9 1.3.2 入口类 10 1.3.3 测试类 11 1.3.4 pom文件 12 1.4 Spring Boot 2.x新特性 14 1.4.1 配置变更 14 1.4.2 第三方类库升级 14 1.4.3 HTTP2支持 14 1.4.4 响应式Spring编程支持 14 1.4.5 其他新特性 15 1.5 Maven Helper插件的安装和使用 15 1.5.1 Maven Helper插件安装 15 1.5.2 Maven Helper插件使用 16 1.6 思考题 16 第2章 集成MySQL数据库 18 2.1 MySQL介绍与安装 18 2.1.1 MySQL概述 18 2.1.2 MySQL安装 18 2.2 集成MySQL数据库 19 2.2.1 引入依赖 20 2.2.2 添加数据库配置 20 2.2.3 设计表和实体 20 2.3 集成测试 22 2.3.1 测试用例开发 22 2.3.2 测试 23 2.3.3 Navicat for MySQL客户端安装与使用 23 2.3.4 Intellij IDEA连接MySQL 24 2.4 集成Druid 25 2.4.1 Druid概述 25 2.4.2 引入依赖 26 2.4.3 Druid配置 26 2.4.4 开启监控功能 27 2.4.5 测试 29 2.5 HikariCP连接池 29 2.5.1 HikariCP概述 29 2.5.2 HikariCP的使用 30 第3章 集成Spring Data JPA 32 3.1 Spring Data JPA介绍 32 3.1.1 Spring Data JPA介绍 32 3.1.2 核心接口Repository 33 3.1.3 接口继承关系图 34 3.2 集成Spring Data JPA 34 3.2.1 引入依赖 34 3.2.2 继承JpaRepository 35 3.2.3 服务层类实现 37 3.2.4 增删改查分页简单实现 39 3.2.5 自定义查询方法 40 3.3 集成测试 42 3.3.1 测试用例开发 42 3.3.2 测试 43 3.4 思考题 43 第4章 Thymeleaf模板引擎与集成测试 44 4.1 Thymeleaf模板引擎介绍 44 4.2 使用Thymeleaf模板引擎 45 4.2.1 引入依赖 45 4.2.2 控制层开发 46 4.2.3 Thymeleaf模板页面开发 47 4.3 集成测试 48 4.3.1 测试 48 4.3.2 REST Client工具介绍 49 4.3.3 使用REST Client测试 49 第5章 Spring Boot事务支持 50 5.1 Spring事务介绍 50 5.1.1 Spring事务回顾 50 5.1.2 Spring声明式事务 51 5.1.3 Spring注解事务行为 51 5.2 Spring Boot事务使用 53 5.2.1 Spring Boot事务介绍 53 5.2.2 类级别事务 53 5.2.3 方法级别事务 54 5.2.4 测试 55 5.3 思考题 56 第6章 使用过滤器和监听器 57 6.1 Spring Boot使用过滤器Filter 57 6.1.1 过滤器Filter介绍 57 6.1.2 过滤器Filter的使用 58 6.1.3 测试 60 6.2 Spring Boot使用监听器Listener 60 6.2.1 监听器Listener介绍 60 6.2.2 监听器Listener的使用 61 6.2.3 测试 62 第7章 集成Redis缓存 63 7.1 Redis缓存介绍 63 7.1.1 Redis概述 63 7.1.2 Redis服务器安装 63 7.1.3 Redis缓存测试 65 7.2 Spring Boot集成Redis缓存 71 7.2.1 Spring Boot缓存支持 71 7.2.2 引入依赖 71 7.2.3 添加缓存配置 72 7.2.4 测试用例开发 72 7.2.5 测试 73 7.3 Redis缓存在Spring Boot中的使用 74 7.3.1 监听器Listener开发 74 7.3.2 项目启动缓存数据 76 7.3.3 更新缓存数据 76 7.3.4 测试 77 第8章 集成Log4J日志 79 8.1 Log4J概述 79 8.2 集成Log4J2 81 8.2.1 引入依赖 81 8.2.2 添加Log4J配置 82 8.2.3 创建log4j2.xml文件 82 8.3 使用Log4J记录日志 83 8.3.1 打印到控制台 83 8.3.2 记录到文件 84 8.3.3 测试 86 8.4 思考题 87 第9章 Quartz定时器和发送Email 88 9.1 使用Quartz定时器 88 9.1.1 Quartz概述 88 9.1.2 引入依赖 90 9.1.3 定时器配置文件 90 9.1.4 创建定时器类 92 9.1.5 Spring Boot扫描配置文件 94 9.1.6 测试 94 9.2 Spring Boot发送Email 94 9.2.1 Email介绍 94 9.2.2 引入依赖 95 9.2.3 添加Email配置 95 9.2.4 在定时器中发送邮件 96 9.2.5 测试 99 第10章 集成MyBatis 100 10.1 MyBatis介绍 100 10.2 集成MyBatis的步骤 100 10.2.1 引入依赖 100 10.2.2 添加MyBatis配置 101 10.2.3 Dao层和Mapper文件开发 101 10.2.4 测试 104 第11章 异步消息与异步调用 106 11.1 JMS消息概述 106 11.2 Spring Boot集成ActiveMQ 107 11.2.1 ActiveMQ概述 107 11.2.2 ActiveMQ的安装 108 11.2.3 引入依赖 109 11.2.4 添加ActiveMQ配置 109 11.3 使用ActiveMQ 110 11.3.1 创建生产者 110 11.3.2 创建消费者 113 11.3.3 测试 114 11.4 Spring Boot异步调用 118 11.4.1 异步调用概述 118 11.4.2 @Async使用 118 11.4.3 测试 119 第12章 全局异常处理与Retry重试 122 12.1 全局异常介绍 122 12.2 Spring Boot全局异常使用 123 12.2.1 自定义错误页面 123 12.2.2 测试 124 12.2.3 全局异常类开发 124 12.2.4 测试 127 12.3 Retry重试机制 127 12.3.1 Retry重试概述 127 12.3.2 Retry重试机制使用 128 12.3.3 测试 130 第13章 集成MongoDB数据库 131 13.1 MongoDB数据库介绍 131 13.1.1 MongoDB的安装 131 13.1.2 NoSQL Manager for MongoDB客户端的使用 133 13.2 集成MongoDB 134 13.2.1 引入依赖 134 13.2.2 添加MongoDB配置 134 13.2.3 连接MongoDB 135 13.2.4 测试 137 第14章 集成Spring Security 138 14.1 Spring Security概述 138 14.2 集成Spring Security的步骤 139 14.2.1 引入依赖 139 14.2.2 配置Spring Security 140 14.2.3 测试 142 14.2.4 数据库用户授权登录 142 14.2.5 测试 149 第15章 Spring Boot应用监控 150 15.1 应用监控介绍 150 15.2 使用监控 151 15.2.1 引入依赖 151 15.2.2 添加配置 151 15.2.3 测试 152 15.3 自定义端点 155 15.3.1 自定义端点EndPoint 155 15.3.2 测试 156 15.3.3 自定义HealthIndicator 157 15.3.4 测试 160 15.4 保护Actuator端点 161 第16章 集成Dubbo和Zookeeper 163 16.1 Zookeeper的介绍与安装 163 16.1.1 Zookeeper概述 163 16.1.2 Zookeeper的安装与启动 164 16.2 Spring Boot集成Dubbo 165 16.2.1 Dubbo概述 165 16.2.2 服务与接口拆分思路 167 16.2.3 服务与接口拆分实践 167 16.2.4 正式版发布 171 16.2.5 Service服务端开发 172 16.2.6 Service服务注册 173 16.2.7 Client客户端开发 174 第17章 多环境配置与部署 175 17.1 多环境配置概述 175 17.2 多环境配置的使用 177 17.2.1 添加多个配置文件 177 17.2.2 配置激活选项 177 17.2.3 测试 178 17.3 自定义属性与加载 179 17.3.1 自定义属性 179 17.3.2 参数间的引用 181 17.3.3 使用随机数 182 17.4 部署 184 17.4.1 Spring Boot内置Tomcat 184 17.4.2 Intellij IDEA配置Tomcat 185 17.4.3 war包部署 187 17.4.4 测试 187 17.5 热部署 188 17.6 思考题 189 第18章 微服务容器化 191 18.1 Docker概述 191 18.1.1 Docker的优势 191 18.1.2 Docker的基本概念 193 18.1.3 Docker架构 194 18.1.4 Docker的安装 195 18.2 Docker的常用命令 198 18.3 制作与自动化构建镜像 205 18.3.1 制作镜像 205 18.3.2 使用Dockerfile构建镜像 208 18.4 Spring Boot集成Docker 212 第19章 微服务测试 217 19.1 Spring Boot单元测试 217 19.1.1 关于测试 217 19.1.2 微服务测试 218 19.2 Spring Boot单元测试 220 19.3 MockitoPowerMockito测试框架 223 19.3.1 Mockito概述 223 19.3.2 Mockito简单实例 224 19.3.3 PowerMock概述 227 19.3.4 PowerMockito简单实例 228 19.4 H2内存型数据库 231 19.4.1 H2概述 231 19.4.2 Spring Boot集成H2 231 19.5 REST API测试 235 19.5.1 Postman概述 235 19.5.2 Postman的简单使用 235 19.6 性能测试 238 19.6.1 AB概述 238 19.6.2 AB测试 239 第20章 Spring Boot原理解析 241 20.1 回顾入口类 241 20.1.1 DemoApplication入口类 241 20.1.2 @SpringBootApplication的原理 242 20.1.3 SpringApplication的run方法 243 20.1.4 SpringApplicationRunListeners监听器 245 20.1.5 ApplicationContextInitializer接口 246 20.1.6 ApplicationRunner与CommandLineRunner 247 20.2 SpringApplication执行流程 248 20.3 spring-boot-starter原理 250 20.3.1 自动配置条件依赖 250 20.3.2 Bean参数获取 255 20.3.3 Bean的发现与加载 256 20.3.4 自定义starter 263 20.4 跨域访问 269 20.5 优雅关闭 270 20.5.1 Java优雅停机 270 20.5.2 Spring Boot优雅停机 273 20.6 将SSMMaven项目改造为Spring Boot项目 276 20.6.1 创建Maven项目 276 20.6.2 第一种改造方法 278 20.6.3 第二种改造方法 279 20.7 思考题 281 第21章 实战高并发秒杀系统 283 21.1 秒杀系统业务 283 21.1.1 什么是秒杀 283 21.1.2 秒杀系统的工作流程 284 21.2 秒杀系统的简单实现 284 21.2.1 创建Spring Boot项目 284 21.2.2 库表设计与Model实体类 285 21.2.3 集成MySQL和JPA 290 21.2.4 Service服务层的设计与开发 292 21.2.5 Controller控制层的设计与开发 295 21.2.6 前端页面的设计与开发 297 21.2.7 代码测试 300 21.2.8 总结 301 21.3 秒杀系统读优化 302 21.3.1 高并发读优化 302 21.3.2 使用Redis缓存 302 21.4 流量削峰 306 21.4.1 流量削峰的原因 306 21.4.2 集成ActiveMQ 306 21.4.3 生产者开发 307 21.4.4 消费者开发 308 21.5 业务优化 310 21.5.1 答题验证码 310 21.5.2 分时分段 311 21.5.3 禁用秒杀按钮 311 21.6 降级、限流、拒绝服务 311 21.6.1 降级 311 21.6.2 限流 312 21.6.3 拒绝服务 312 21.7 避免单点 312 21.8 总结 313 参考文献 314
|
內容試閱:
|
前言
Spring Boot是近几年非常流行的微服务框架,相对于其他开发框架,Spring Boot不但使用更加简单,而且功能更加丰富,性能更加稳定和健壮。Spring Boot是在Spring框架基础上创建的一个全新的框架,其设计目的是简化Spring应用的搭建和开发过程,使得开发人员不仅能提高开发速度和生产效率,而且能够增强系统的稳定性和扩展性。因此,Spring Boot已经成为Java开发人员的必备技术。
本书是一本突出实战的Spring Boot 2.x专业著作,从零开始,引导读者循序渐进地掌握Spring Boot在Web开发中的各种技术,既注重基础、Spring Boot背后的原理和执行流程,又突出Spring Boot与各种热点技术的整合应用,如Spring Boot集成MyBatis、Active MQ、MongoDB、Redis缓存、Zookeeper、Log4J日志等,此外还介绍了微服务的多环境与部署、微服务的容器化、微服务测试等当前微服务开发中的必备技术。本书最后还给出了一个简易版本的高并发秒杀系统的开发,希望读者通过本项目的实践真正掌握真实项目的开发 能力。
本书的大部分内容都来自笔者的开发实践,在讲解上力求通俗易懂,深入浅出,通过完整的项目实例,带领大家一步一步学习Spring Boot。通过实战项目,学习Spring Boot的基础知识、Spring Boot的开发技巧和Spring Boot的技术原理,最终达到融会贯通。
本书结构
本书共分21章,各章内容概要如下:
第1章介绍了开始学习Spring Boot之前的环境准备,如何1分钟快速搭建Spring Boot项目、Spring Boot文件目录的简单介绍以及Maven Helper插件的安装和使用等。
第2章主要介绍如何安装和使用MySQL、Spring Boot集成MySQL数据库、Spring Boot集成Druid以及通过实例讲解Spring Boot的具体运用。
第3章主要介绍Spring Data JPA核心接口及继承关系、在Spring Boot中集成Spring Data JPA以及如何通过Spring Data JPA实现增删改查及自定义查询等。
第4章主要介绍Thymeleaf模板引擎、Thymeleaf模板引擎标签和函数、Spring Boot中如何使用Thymeleaf、集成测试以及Rest Client工具的使用。
第5章主要介绍Spring声明式事务、Spring注解事务行为以及在Spring Boot中如何使用方法级别事务和类级别事务等。
第6章主要介绍如何在Spring Boot中使用过滤器Filter和监听器Listener。
第7章主要介绍如何安装Redis缓存、Redis缓存5种基本数据类型的增删改查、Spring Boot中如何集成Redis缓存以及如何使用Redis缓存用户数据等。
第8章主要回顾Log4j基础知识、在Spring Boot中集成Log4j、Log4j在Spring Boot中的运用以及如何把日志打印到控制台和记录到日志文件中。
第9章主要介绍在Spring Boot中使用XML配置和Java注解两种方式定义和使用Quartz定时器,以及如何在Spring Boot中通过JavaMailSender接口给用户发送广告邮件等。
第10章主要介绍如何在Spring Boot中集成MyBatis框架以及通过MyBatis框架实现查询等功能,最后介绍如何使用MyBatisCodeHelper插件快速生成增删改查代码。
第11章主要介绍ActiveMQ的安装与使用、Spring Boot集成ActiveMQ、利用ActiveMQ实现异步发表微信说说以及Spring Boot异步调用@Async等内容。
第12章主要介绍Srping Boot全局异常使用、自定义错误页面、全局异常类开发、Retry重试机制的使用等内容。
第13章主要介绍如何安装和使用MongoDB数据库、NoSQL Manager for MongoDB客户端的安装与使用以及在Spring Boot中集成MongoDB数据库开发简单的功能等内容。
第14章主要介绍Spring Security的基础知识、Spring Boot如何集成Spring Security、利用Spring Security实现授权登录,以及利用Spring Boot实现数据库数据授权登录等内容。
第15章主要介绍如何通过Spring Boot监控和管理应用、自定义监控端点以及自定义HealthIndicator等内容。
第16章主要介绍如何安装并运行Zookeeper、Spring Boot集成Dubbo、spring-boot-book-v2项目的服务拆分和实践、正式版API如何发布和服务注册等内容。
第17章主要介绍Spring Boot多环境配置及使用、Spring Boot如何打成war包并部署到外部Tomcat服务器上等。
第18章主要介绍Docker技术以及如何将Spring Boot项目容器化。
第19章主要介绍Spring Boot单元测试、MockitoPowerMockito测试框架、H2内存型数据库、REST API测试以及性能测试等内容。
第20章主要回顾了DemoApplication入口类注解和run方法的原理,梳理了Spring Boot启动执行的流程和简单分析了spring-boot-starter的起步依赖原理,同时介绍了真实项目中的跨域问题、Spring Boot优雅关闭以及如何将普通Web项目改造成Spring Boot项目等内容。
第21章主要介绍如何使用Spring Boot搭建一个高可用、高性能、高并发的秒杀系统。
学习本书的预备知识
Java基础
读者需要掌握J2SE基础知识,这是最基本也是最重要的。
Java Web开发技术
在项目实战中需要用到Java Web的相关技术,比如Spring、HTML、Tomcat、MyBatis等技术。
数据库基础
读者需要掌握主流数据库的基本知识,比如MySQL等。掌握基本的SQL语法以及常用数据库的安装。
本书使用的软件版本
本书项目实战开发环境为Windows 10,开发工具使用Intellij IDEA 2016.2,JDK使用1.8版本,Tomcat使用8.0版本,Spring Boot使用最新版2.1.6.RELEASE。
读者对象
本书适合所有Java编程语言开发人员,所有对Spring Boot感兴趣并希望使用Spring Boot开发框架进行开发的人员,缺少Spring Boot项目实战经验以及对Spring Boot内部原理感兴趣的开发人员。
源代码与视频教学下载
GitHub源代码下载地址:
https:github.comhuangwenyi10spring-boot-book-v2.git
扫描下述二维码可下载本书视频教学:
如果下载有问题,可发送电子邮件至booksaga@126.com获得帮助,邮件标题为一步一步学Spring Boot:微服务项目实战(第2版)下载资源。
致谢
本书能够顺利出版,首先要感谢清华大学出版社王金柱编辑给笔者一次和大家分享技术、交流学习的机会,感谢王金柱编辑在本书出版过程的辛勤付出。
感谢厦门星耀蓝图科技有限公司,笔者的Spring Boot知识是在贵公司积累沉淀的,书中很多的知识点和项目实战经验都来源于贵公司,感谢公司总经理杨小雄、主管林良昆、架构师高志强、同事陈明元和林腾亚对笔者的关心和帮助。
感谢目前在职的上海美团科技有限公司,感谢公司主管王纪伟、导师叶永林、组长文慧、同事杨伟勤对笔者的栽培与帮助。
感谢笔者的家人和何庆华学长,他们对笔者生活的照顾使得笔者没有后顾之忧,全身心投入到本书的写作当中。
限于水平和写作时间,书中难免存在不足,欢迎广大读者批评指正。
黄文毅
2019年9月25日
|
|