新書推薦:
《
认知行为疗法:心理咨询的顶层设计
》
售價:HK$
99.7
《
FANUC工业机器人装调与维修
》
售價:HK$
99.7
《
吕著中国通史
》
售價:HK$
62.7
《
爱琴海的光芒 : 千年古希腊文明
》
售價:HK$
199.4
《
不被他人左右:基于阿德勒心理学的无压力工作法
》
售價:HK$
66.1
《
SDGSAT-1卫星热红外影像图集
》
售價:HK$
445.8
《
股市趋势技术分析(原书第11版)
》
售價:HK$
221.8
《
汉匈战争全史
》
售價:HK$
99.7
編輯推薦:
1.【内容全】详细介绍Spring Boot等10+款Spring常用组件2.【重实战】注重工程实现,书中的技术主题与业务开发强关联3.【本土化】贴近实际工作场景,涵盖国内高频使用的工具与组件4.【大案例】“二进制奶茶店”分布式系统案例贯穿全书,即学即用5.【作者强】超过15年一线开发经验,大厂大型系统构建经验丰富6.【易学习】1个大案例 | 355段代码 | 44回茶歇 | 178张表 | 59幅图
內容簡介:
本书的目标是让大家又快又好地打包学透 Spring 技术栈,内容将涉及 Spring Framework、Spring Boot、 Spring Cloud 等 Spring 家族成员。 本书分为四部分:第一部分“Spring 入门”,先学习基本的 Spring IoC、AOP,随后过渡到当下热门的 Spring Boot ;第二部分“Spring 中的数据操作”,其中既有常规的 SQL、NoSQL 数据操作,也有进阶的数据源配置和缓存抽象;第三部分“使用 Spring 开发 Web 应用”,讲述 Spring MVC 细节的同时,也不放过 Web 安全与 REST ;第四部分“使用 Spring 开发微服务”,除了常规的 Spring Cloud 模块,也会讲解 Spring Cloud Alibaba。在讲解具体内容的基本示例之外,书中还设计了一个贯穿主要章节的实战案例,带大家一步步从零开始实现一个灵活运用全书内容的项目“二进制奶茶店”。 本书重实战、重工程现实,是业内专业人员丁雪丰亲历的有效学习路径,汇集了作者多年的实战经验。跟着兔子书,只要具备 Java 基础知识,就可以快速上手 Spring,并落地实战项目和生产环境。
關於作者:
丁雪丰 美团研究员、技术图书作译者、极客时间《玩转Spring全家桶》课程讲师。获得了“上海市青年金才”“腾讯云价值专家”等称号。致力于推动先进技术在国内的发展,是Spring Framework 2.0和Spring Framework 2.5官方文档翻译项目的负责人,翻译及原创出版了《Spring Boot实战》《Spring攻略》《RESTful Web Services Cookbook中文版》等8部图书。曾就职于平安壹钱包、百度与,在互联网金融、支付等领域积累了丰富的大型系统构建经验。
目錄 :
第 一部分 Spring入门第 1章 初识 Spring21.1 认识 Spring 家族21.1.1 Spring 发展历史21.1.2 Spring 家族主要成员41.2 编写第 一个 Spring 程序71.2.1 基础环境准备81.2.2 通过Spring Initializr创建工程121.2.3 编写简单的REST服务141.3 实战案例说明161.3.1 需求描述161.3.2 模块说明171.4 小结19第 2章 Spring Framework中的IoC容器202.1 IoC容器基础知识202.1.1 什么是IoC容器202.1.2 容器的初始化212.1.3 BeanFactory与ApplicationContext232.1.4 容器的继承关系242.2 Bean基础知识272.2.1 什么是Bean272.2.2 Bean的依赖关系272.2.3 Bean的三种配置方式302.3 定制容器与Bean的行为332.3.1 Bean的生命周期332.3.2 Aware接口的应用372.3.3 事件机制372.3.4 容器的扩展点392.3.5 优雅地关闭容器40茶歇时间:Linux环境下如何关闭进程412.4 容器中的几种抽象422.4.1 环境抽象422.4.2 任务抽象44茶歇时间:该怎么配置线程池45茶歇时间:本地调度vs.分布式调度472.5 小结47第3章 Spring Framework中的AOP483.1 Spring中的AOP483.1.1 AOP的核心概念483.1.2 Spring AOP的实现原理49茶歇时间:使用代理模式过程中的小坑513.2 基于@AspectJ的配置523.2.1 声明切入点53茶歇时间:Spring AOP与AspectJ中PCD的不同之处543.2.2 声明通知553.2.3 基于@AspectJ的示例573.3 基于XML Schema的配置613.3.1 声明切入点623.3.2 声明通知623.3.3 通知器643.3.4 基于XML Schema的示例64茶歇时间:超简洁的JUnit单元测试入门653.4 小结66第4章 从Spring Framework到Spring Boot674.1 Spring Boot基础知识674.1.1 为什么需要Spring Boot674.1.2 Spring Boot的组成部分684.1.3 解析Spring Boot工程704.2 起步依赖714.2.1 Spring Boot内置的起步依赖724.2.2 起步依赖的实现原理734.3 自动配置754.3.1 自动配置的实现原理75茶歇时间:通过ImportSelector选择性导入配置764.3.2 配置项加载机制详解774.4 编写我们自己的自动配置与起步依赖794.4.1 编写自己的自动配置804.4.2 脱离Spring Boot实现自动配置834.4.3 编写自己的起步依赖874.5 小结88第5章 面向生产的Spring Boot895.1 Spring Boot Actuator概述895.1.1 端点概览895.1.2 端点配置92茶歇时间:针对Web和Actuator使用不同端口的好处955.1.3 定制端点信息965.1.4 开发自己的组件与端点98茶歇时间:为什么要优先通过ObjectProvider获取Bean1005.2 基于Micrometer的系统度量1015.2.1 Micrometer概述1025.2.2 常用度量指标1035.2.3 自定义度量指标107茶歇时间:性能分析时的95线与99线是什么含义1105.2.4 度量值的输出1115.3 部署Spring Boot应用程序1125.3.1 可执行Jar及其原理1125.3.2 构建启动代码115茶歇时间:如何优雅地关闭系统1175.3.3 启动后的一次性执行逻辑118茶歇时间:通过Lombok简化代码1215.4 小结122第二部分 Spring中的数据操作第6章 Spring中的JDBC1246.1 配置数据源1246.1.1 数据库连接池124茶歇时间:HikariCP为什么说自己比别人快1276.1.2 数据源配置详解128茶歇时间:使用Docker简化本地开发环境的准备工作1336.2 使用JDBC操作数据库1346.2.1 查询类操作1356.2.2 变更类操作1396.2.3 批处理操作1416.2.4 自动配置说明1436.3 事务管理1436.3.1 Spring Framework的事务抽象1446.3.2 Spring事务的基本配置1466.3.3 声明式事务148茶歇时间:通常事务加在哪层比较合适 151茶歇时间:声明式事务背后的原理1536.3.4 编程式事务1546.4 异常处理1556.4.1 统一的异常抽象1556.4.2 自定义错误码处理逻辑1576.5 小结158第7章 对象关系映射1607.1 通过Hibernate操作数据库1607.1.1 Hibernate与JPA1607.1.2 定义实体对象162茶歇时间:为什么一定要用Money类来表示金额165茶歇时间:OpenSessionInView问题1687.1.3 通过Hibernate API操作数据库1697.1.4 通过Spring Data的Repository操作数据库173茶歇时间:JpaRepository背后的原理1787.2 通过MyBatis操作数据库1797.2.1 定义MyBatis映射1807.2.2 在Spring中配置并使用MyBatis1847.2.3 提升MyBatis的开发效率1877.3 小结193第8章 数据访问进阶1948.1 连接池的实用配置1948.1.1 保护敏感的连接配置1948.1.2 记录SQL语句执行情况1978.1.3 Druid的Filter扩展2008.2 在Spring工程中访问Redis2028.2.1 配置Redis连接202茶歇时间:Redis的几种部署模式2048.2.2 Redis的基本操作206茶歇时间:本地缓存 vs. 分布式缓存2128.2.3 通过Repository操作Redis212茶歇时间:多种不同的Repository如何共存2168.3 Spring的缓存抽象2178.3.1 基于注解的方法缓存2178.3.2 替换不同的缓存实现2218.4 小结224第三部分 使用Spring开发Web应用第9章 Spring MVC实践2269.1 简单上手Spring MVC2269.1.1 Spring MVC概览2269.1.2 编写一个简单的控制器2279.2 Spring MVC的请求处理逻辑2349.2.1 请求的处理流程234茶歇时间:Servlet的基础知识2409.2.2 请求处理方法241茶歇时间:请求处理过程中遇到的几个作用范围243茶歇时间:Spring Boot自动配置预埋的扩展点2459.3 Spring MVC的视图机制2529.3.1 视图解析2529.3.2 常用视图类型2539.3.3 静态资源与缓存260茶歇时间:时间 vs. 空间2639.4 访问Web资源2649.4.1 通过RestTemplate访问Web资源2649.4.2 RestTemplate的进阶用法270茶歇时间:模板设计模式2759.4.3 简单定制RestTemplate275茶歇时间:HttpComponents的Keep-Alive默认策略优化2779.5 小结278第 10章 保护Web安全27910.1 认识Spring Security27910.1.1 模块介绍28010.1.2 工作原理28010.2 身份认证28210.2.1 Spring Security的身份认证机制28210.2.2 基于用户名和密码的身份认证283茶歇时间:使用Spring Security加密保存密码28410.2.3 实现“记住我”功能29410.2.4 自定义认证方式29810.3 访问授权30310.3.1 访问授权的判断方式30310.3.2 基本的权限配置30410.3.3 面向方法的访问授权308茶歇时间:如何忽略权限校验31010.4 常见Web攻击防护31110.4.1 跨站请求伪造攻击防护31110.4.2 会话固定攻击防护31610.4.3 跨站脚本攻击防护31610.4.4 点击劫持攻击防护31710.4.5 引导使用HTTPS31710.5 客户端程序的认证31910.5.1 几种常见的认证方式31910.5.2 用RestTemplate实现简单的认证32010.6 小结323第 11章 Web开发进阶32511.1 在Spring MVC中实现AOP32511.1.1 使用HandlerInterceptor实现AOP32511.1.2 完善异常处理逻辑32911.2 调整Web容器33311.2.1 更换内嵌Web容器334茶歇时间:不同的Servlet版本与对应的容器33511.2.2 调整内嵌Web容器配置335茶歇时间:如何获得HTTPS证书33811.2.3 支持HTTP/2341茶歇时间:网站提供的HTTPS服务到底是否安全 34511.3 支持分布式Session34611.3.1 几种常见的解决方案34611.3.2 使用Spring Session实现分布式Session34811.4 响应式Web35311.4.1 了解Project Reactor35411.4.2 使用WebFlux代替WebMVC359茶歇时间:为什么Project Reactor和WebFlux还没成为主流36311.4.3 通过WebClient访问Web资源36611.5 小结371第四部分 使用Spring开发微服务第 12章 微服务与云原生应用37412.1 走近微服务37412.1.1 什么是微服务37412.1.2 微服务的特点37512.2 RESTful风格的微服务37712.2.1 什么是RESTful风格的微服务37712.2.2 设计RESTful风格的微服务37912.2.3 了解领域驱动设计38312.3 理解云原生38512.3.1 什么是云原生应用38512.3.2 十二要素应用38612.3.3 Spring Cloud概述39012.4 小结391第 13章 服务注册与发现39213.1 常见的负载均衡方案39213.1.1 集中式方案39213.1.2 分布式方案39513.2 使用Spring Cloud实现负载均衡39613.2.1 在Zookeeper中注册服务396茶歇时间:为什么Zookeeper不适合做服务注册中心39813.2.2 使用Spring Cloud LoadBalancer访问服务398茶歇时间:@LoadBalanced是如何工作的39913.2.3 使用OpenFeign访问服务40013.3 服务注册与发现的抽象与应用40513.3.1 服务注册的抽象40513.3.2 服务发现的抽象40613.3.3 在Consul中注册服务40613.3.4 在Nacos中注册服务408茶歇时间:Spring Cloud Alibaba概述41113.3.5 在Eureka中注册服务41113.4 小结414第 14章 服务配置管理41514.1 使用Spring Cloud Config实现配置管理41514.1.1 为何需要配置中心41514.1.2 基于Spring Cloud Config Server的配置中心416茶歇时间:加解密绕不开的JCE42314.1.3 通过Spring Cloud Config Client访问配置42314.2 服务配置的实现原理与应用42614.2.1 服务配置的实现原理42614.2.2 基于Zookeeper的配置中心42914.2.3 基于Consul的配置中心43114.2.4 基于Alibaba Nacos的配置中心43314.3 小结436第 15章 服务容错保护43715.1 常见的服务容错模式43715.1.1 几种常见的容错模式43715.1.2 通过AOP实现简单的容错44015.2 使用Resilience4j实现容错44715.2.1 使用Resilience4j实现限流44715.2.2 使用Resilience4j实现断路45315.2.3 使用Resilience4j实现隔离45715.2.4 resilience4j-spring-boot2的特别说明46115.3 使用Spring Cloud CircuitBreaker实现容错46215.3.1 通过Spring Cloud CircuitBreaker使用Resilience4j46315.3.2 通过Spring Cloud CircuitBreaker使用Sentinel46615.4 小结476第 16章 服务集成47716.1 使用Dubbo进行RPC通信47716.1.1 Dubbo概述47716.1.2 Dubbo的基础用法479茶歇时间:多个copyProperties()该如何选择482茶歇时间:为什么对外的接口里不要用枚举48416.2 使用消息中间件进行异步通信48816.2.1 为什么要使用基于消息的异步通信488茶歇时间:常见的消息模型48916.2.2 通过Spring AMQP使用RabbitMQ48916.2.3 通过Spring Cloud Stream使用Kafka495茶歇时间:用Docker Compose在本地启动一套Kafka50116.3 服务链路追踪50216.3.1 链路追踪概述50316.3.2 基于Spring Cloud Sleuth实现链路追踪505茶歇时间:OpenTelemetry概述50916.4 基于Spring Cloud Gateway实现微服务网关51016.4.1 什么是微服务网关51016.4.2 Spring Cloud Gateway的路由配置51216.5 小结522第五部分 附录附录A 从Spring Boot 2.x升级到3.0526A.1 升级判断标准526A.2 升级操作526A.2.1 依赖组件升级527A.2.2 代码修改529附录B 将应用程序打包为Docker镜像531B.1 编写Dockerfile531茶歇时间:如何选择基础Java Docker镜像532B.2 构建并运行镜像533B.3 构建分层镜像534B.4 其他打包方式535附录C 通过Spring Native打包本地镜像536C.1 GraalVM与Spring Native536C.1.1 GraalVM简介536C.1.2 Spring Native简介537C.2 编译打包本地镜像538C.2.1 准备工作538C.2.2 调整编译打包配置539C.2.3 修改代码542C.2.4 其他优化547后记549