展开全部

主编推荐语

超强实战技术升级指南,囊括源码、设计思想、架构思维、实战案例、开发经验。

内容简介

本书基于编程开发实践,不仅深度解析Spring 5的原理与新特性,更从环境准备、顶层结构设计、数据访问等方面一步步地推导出Spring的设计原理。在每个知识点上,均以大量的经典代码案例辅助讲解,使理论紧密联系实际。

目录

  • 封面
  • 作者简介
  • 版权页
  • 序言
  • 关于本书
  • 关于我
  • 目录
  • 第1篇 Spring内功心法
  • 第1章 软件架构设计原则
  • 1.1 开闭原则
  • 1.2 依赖倒置原则
  • 1.3 单一职责原则
  • 1.4 接口隔离原则
  • 1.5 迪米特原则
  • 1.6 里氏替换原则
  • 1.7 合成复用原则
  • 1.8 设计原则总结
  • 第2章 Spring中常用的设计模式
  • 2.1 为什么要从设计模式开始
  • 2.1.1 写出优雅的代码
  • 2.1.2 更好地重构项目
  • 2.1.3 经典框架都在用设计模式解决问题
  • 2.2 工厂模式详解
  • 2.2.1 工厂模式的由来
  • 2.2.2 简单工厂模式
  • 2.2.3 工厂方法模式
  • 2.2.4 抽象工厂模式
  • 2.2.5 利用工厂模式重构的实践案例
  • 2.3 单例模式详解
  • 2.3.1 单例模式的应用场景
  • 2.3.2 饿汉式单例模式
  • 2.3.3 懒汉式单例模式
  • 2.3.4 反射破坏单例
  • 2.3.5 序列化破坏单例
  • 2.3.6 注册式单例模式
  • 2.3.7 线程单例实现ThreadLocal
  • 2.3.8 单例模式小结
  • 2.4 原型模式详解
  • 2.4.1 原型模式的应用场景
  • 2.4.2 浅克隆
  • 2.4.3 深克隆
  • 2.4.4 克隆破坏单例模式
  • 2.4.5 clone()方法的源码
  • 2.5 代理模式详解
  • 2.5.1 代理模式的应用场景
  • 2.5.2 静态代理
  • 2.5.3 动态代理
  • 2.5.4 代理模式与Spring
  • 2.5.5 静态代理和动态代理的本质区别
  • 2.5.6 代理模式的优缺点
  • 2.6 委派模式详解
  • 2.6.1 委派模式的定义及应用场景
  • 2.6.2 委派模式在源码中的体现
  • 2.7 策略模式详解
  • 2.7.1 策略模式的应用场景
  • 2.7.2 用策略模式实现选择支付方式的业务场景
  • 2.7.3 策略模式在JDK源码中的体现
  • 2.7.4 策略模式的优缺点
  • 2.7.5 委派模式与策略模式综合应用
  • 2.8 模板模式详解
  • 2.8.1 模板模式的应用场景
  • 2.8.2 利用模板模式重构JDBC操作业务场景
  • 2.8.3 模板模式在源码中的体现
  • 2.8.4 模板模式的优缺点
  • 2.9 适配器模式详解
  • 2.9.1 适配器模式的应用场景
  • 2.9.2 重构第三方登录自由适配的业务场景
  • 2.9.3 适配器模式在源码中的体现
  • 2.9.4 适配器模式的优缺点
  • 2.10 装饰者模式详解
  • 2.10.1 装饰者模式的应用场景
  • 2.10.2 装饰者模式和适配器模式对比
  • 2.10.3 装饰者模式在源码中的应用
  • 2.10.4 装饰者模式的优缺点
  • 2.11 观察者模式详解
  • 2.11.1 观察者模式的应用场景
  • 2.11.2 观察者模式在源码中的应用
  • 2.11.3 基于Guava API轻松落地观察者模式
  • 2.11.4 观察者模式的优缺点
  • 2.12 各设计模式的总结与对比
  • 2.12.1 GoF 23种设计模式简介
  • 2.12.2 设计模式之间的关联关系
  • 2.12.3 Spring中常用的设计模式
  • 2.13 Spring中的编程思想总结
  • 第2篇 Spring环境预热
  • 第3章 Spring的前世今生
  • 3.1 一切从Bean开始
  • 3.2 Spring的设计初衷
  • 3.3 BOP编程伊始
  • 3.4 理解BeanFactory
  • 3.5 AOP编程理念
  • 第4章 Spring 5系统架构
  • 4.1 核心容器
  • 4.2 AOP和设备支持
  • 4.3 数据访问与集成
  • 4.4 Web组件
  • 4.5 通信报文
  • 4.6 集成测试
  • 4.7 集成兼容
  • 4.8 各模块之间的依赖关系
  • 第5章 Spring版本命名规则
  • 5.1 常见软件的版本命名
  • 5.2 语义化版本命名通行规则
  • 5.3 商业软件中常见的修饰词
  • 5.4 软件版本号使用限定
  • 5.5 Spring版本命名规则
  • 第6章 Spring源码下载及构建技巧
  • 6.1 Spring 5源码下载
  • 6.2 基于Gradle的源码构建技巧
  • 6.3 Gradle构建过程中的坑
  • 第3篇 Spring核心原理
  • 第7章 用300行代码手写提炼Spring核心原理
  • 7.1 自定义配置
  • 7.1.1 配置application.properties文件
  • 7.1.2 配置web.xml文件
  • 7.1.3 自定义注解
  • 7.1.4 配置注解
  • 7.2 容器初始化
  • 7.2.1 实现1.0版本
  • 7.2.2 实现2.0版本
  • 7.2.3 实现3.0版本
  • 7.3 运行效果演示
  • 第8章 一步一步手绘Spring IoC运行时序图
  • 8.1 Spring核心之IoC容器初体验
  • 8.1.1 再谈IoC与DI
  • 8.1.2 Spring核心容器类图
  • 8.1.3 Web IoC容器初体验
  • 8.2 基于XML的IoC容器的初始化
  • 8.2.1 寻找入口
  • 8.2.2 获得配置路径
  • 8.2.3 开始启动
  • 8.2.4 创建容器
  • 8.2.5 载入配置路径
  • 8.2.6 分配路径处理策略
  • 8.2.7 解析配置文件路径
  • 8.2.8 开始读取配置内容
  • 8.2.9 准备文档对象
  • 8.2.10 分配解析策略
  • 8.2.11 将配置载入内存
  • 8.2.12 载入<bean>元素
  • 8.2.13 载入<property>元素
  • 8.2.14 载入<property>子元素
  • 8.2.15 载入<list>子元素
  • 8.2.16 分配注册策略
  • 8.2.17 向容器注册
  • 8.3 基于注解的IoC初始化
  • 8.3.1 注解的前世今生
  • 8.3.2 定位Bean扫描路径
  • 8.3.3 读取注解的元数据
  • 8.3.4 扫描指定包并解析为BeanDefinition
  • 8.3.5 注册注解BeanDefinition
  • 8.4 IoC容器初始化小结
  • 第9章 一步一步手绘Spring DI运行时序图
  • 9.1 Spring自动装配之依赖注入
  • 9.1.1 依赖注入发生的时间
  • 9.1.2 寻找获取Bean的入口
  • 9.1.3 开始实例化
  • 9.1.4 选择Bean实例化策略
  • 9.1.5 执行Bean实例化
  • 9.1.6 准备依赖注入
  • 9.1.7 解析属性依赖注入规则
  • 9.1.8 注入赋值
  • 9.2 Spring IoC容器中那些鲜为人知的细节
  • 9.2.1 关于延时加载
  • 9.2.2 关于FactoryBean和BeanFactory
  • 9.2.3 再述autowiring
  • 第10章 一步一步手绘Spring AOP运行时序图
  • 10.1 Spring AOP初体验
  • 10.1.1 再述Spring AOP应用场景
  • 10.1.2 AOP中必须明白的几个概念
  • 10.1.3 使用Spring AOP的两种方式
  • 10.1.4 切入点表达式的配置规则
  • 10.2 Spring AOP源码分析
  • 10.2.1 寻找入口
  • 10.2.2 选择代理策略
  • 10.2.3 调用代理方法
  • 10.2.4 触发通知
  • 第11章 一步一步手绘Spring MVC运行时序图
  • 11.1 初探Spring MVC请求处理流程
  • 11.2 Spring MVC九大组件
  • 11.2.1 HandlerMapping
  • 11.2.2 HandlerAdapter
  • 11.2.3 HandlerExceptionResolver
  • 11.2.4 ViewResolver
  • 11.2.5 RequestToViewNameTranslator
  • 11.2.6 LocaleResolver
  • 11.2.7 ThemeResolver
  • 11.2.8 MultipartResolver
  • 11.2.9 FlashMapManager
  • 11.3 Spring MVC源码分析
  • 11.3.1 初始化阶段
  • 11.3.2 运行调用阶段
  • 11.4 Spring MVC优化建议
  • 第4篇 Spring手写实战
  • 第12章 环境准备
  • 12.1 IDEA集成Lombok插件
  • 12.1.1 安装插件
  • 12.1.2 配置注解处理器
  • 12.1.3 使用插件
  • 12.2 从Servlet到ApplicationContext
  • 12.3 准备基础配置
  • 12.3.1 application.properties配置
  • 12.3.2 pom.xml配置
  • 12.3.3 web.xml配置
  • 12.3.4 GPDispatcherServlet
  • 第13章 IoC顶层结构设计
  • 13.1 Annotation(自定义配置)模块
  • 13.1.1 @GPService
  • 13.1.2 @GPAutowired
  • 13.1.3 @GPController
  • 13.1.4 @GPRequestMapping
  • 13.1.5 @GPRequestParam
  • 13.2 core(顶层接口)模块
  • 13.2.1 GPFactoryBean
  • 13.2.2 GPBeanFactory
  • 13.3 beans(配置封装)模块
  • 13.3.1 GPBeanDefinition
  • 13.3.2 GPBeanWrapper
  • 13.4 context(IoC容器)模块
  • 13.4.1 GPAbstractApplicationContext
  • 13.4.2 GPDefaultListableBeanFactory
  • 13.4.3 GPApplicationContext
  • 13.4.4 GPBeanDefinitionReader
  • 13.4.5 GPApplicationContextAware
  • 第14章 完成DI模块的功能
  • 14.1 从getBean()方法开始
  • 14.2 GPBeanPostProcessor
  • 第15章 完成MVC模块的功能
  • 15.1 MVC顶层设计
  • 15.1.1 GPDispatcherServlet
  • 15.1.2 GPHandlerMapping
  • 15.1.3 GPHandlerAdapter
  • 15.1.4 GPModelAndView
  • 15.1.5 GPViewResolver
  • 15.1.6 GPView
  • 15.2 业务代码实现
  • 15.2.1 IQueryService
  • 15.2.2 QueryService
  • 15.2.3 IModifyService
  • 15.2.4 ModifyService
  • 15.2.5 MyAction
  • 15.2.6 PageAction
  • 15.3 定制模板页面
  • 15.3.1 first.html
  • 15.3.2 404.html
  • 15.3.3 500.html
  • 15.4 运行效果演示
  • 第16章 完成AOP代码织入
  • 16.1 基础配置
  • 16.2 完成AOP顶层设计
  • 16.2.1 GPJoinPoint
  • 16.2.2 GPMethodInterceptor
  • 16.2.3 GPAopConfig
  • 16.2.4 GPAdvisedSupport
  • 16.2.5 GPAopProxy
  • 16.2.6 GPCglibAopProxy
  • 16.2.7 GPJdkDynamicAopProxy
  • 16.2.8 GPMethodInvocation
  • 16.3 设计AOP基础实现
  • 16.3.1 GPAdvice
  • 16.3.2 GPAbstractAspectJAdvice
  • 16.3.3 GPMethodBeforeAdvice
  • 16.3.4 GPAfterReturningAdvice
  • 16.3.5 GPAfterThrowingAdvice
  • 16.3.6 接入getBean()方法
  • 16.4 织入业务代码
  • 16.4.1 LogAspect
  • 16.4.2 IModifyService
  • 16.4.3 ModifyService
  • 16.5 运行效果演示
  • 第5篇 Spring数据访问
  • 第17章 数据库事务原理详解
  • 17.1 从Spring事务配置说起
  • 17.2 事务的基本概念
  • 17.3 事务的基本原理
  • 17.4 Spring事务的传播属性
  • 17.5 数据库事务隔离级别
  • 17.6 Spring中的事务隔离级别
  • 17.7 事务的嵌套
  • 17.8 Spring事务API架构图
  • 17.9 浅谈分布式事务
  • 第18章 Spring JDBC源码初探
  • 18.1 异常处理
  • 18.2 config模块
  • 18.3 core模块
  • 18.4 DataSource
  • 18.5 object模块
  • 18.6 JdbcTemplate
  • 18.7 NamedParameterJdbcTemplate
  • 第19章 基于Spring JDBC手写ORM框架
  • 19.1 实现思路概述
  • 19.1.1 从ResultSet说起
  • 19.1.2 为什么需要ORM框架
  • 19.2 搭建基础架构
  • 19.2.1 Page
  • 19.2.2 ResultMsg
  • 19.2.3 BaseDao
  • 19.2.4 QueryRule
  • 19.2.5 Order
  • 19.3 基于Spring JDBC实现关键功能
  • 19.3.1 ClassMappings
  • 19.3.2 EntityOperation
  • 19.3.3 QueryRuleSqlBuilder
  • 19.3.4 BaseDaoSupport
  • 19.4 动态数据源切换的底层原理
  • 19.4.1 DynamicDataSource
  • 19.4.2 DynamicDataSourceEntry
  • 19.5 运行效果演示
  • 19.5.1 创建Member实体类
  • 19.5.2 创建Order实体类
  • 19.5.3 创建MemberDao
  • 19.5.4 创建OrderDao
  • 19.5.5 修改db.properties文件
  • 19.5.6 修改application-db.xml文件
  • 19.5.7 编写测试用例
  • 第6篇 Spring经验分享
  • 第20章 Spring 5新特性总结
  • 20.1 升级到Java SE 8和Java EE 7
  • 20.2 反应式编程模型
  • 20.3 使用注解进行编程
  • 20.4 函数式编程
  • 20.5 使用 REST 端点执行反应式编程
  • 20.6 支持HTTP/2
  • 20.7 Kotlin和Spring WebFlux
  • 20.8 使用Lambda表达式注册Bean
  • 20.9 Spring Web MVC 支持最新的 API
  • 20.10 使用JUnit 5执行条件和并发测试
  • 20.11 包清理和弃用
  • 20.12 Spring核心和容器的一般更新
  • 20.13 我如何看Spring 5
  • 第21章 关于Spring的经典高频面试题
  • 21.1 什么是Spring框架,Spring框架有哪些主要模块
  • 21.2 使用Spring框架能带来哪些好处
  • 21.3 什么是控制反转(IoC),什么是依赖注入
  • 21.4 在Java中依赖注入有哪些方式
  • 21.5 BeanFactory和ApplicationContext有什么区别
  • 21.6 Spring提供几种配置方式来设置元数据
  • 21.7 如何使用XML配置方式配置Spring
  • 21.8 Spring提供哪些配置形式
  • 21.9 怎样用注解的方式配置Spring
  • 21.10 请解释Spring Bean的生命周期
  • 21.11 Spring Bean作用域的区别是什么
  • 21.12 什么是Spring Inner Bean
  • 21.13 Spring中的单例Bean是线程安全的吗
  • 21.14 请举例说明如何在Spring中注入一个Java集合
  • 21.15 如何向Spring Bean中注入java.util.Properties
  • 21.16 请解释Spring Bean的自动装配
  • 21.17 自动装配有哪些局限性
  • 21.18 请解释各种自动装配模式的区别
  • 21.19 请举例解释@Required注解
  • 21.20 请举例说明@Qualifier注解
  • 21.21 构造方法注入和设值注入有什么区别
  • 21.22 Spring中有哪些不同类型的事件
  • 21.23 FileSystemResource和ClassPathResource有什么区别
  • 21.24 Spring中用到了哪些设计模式
  • 21.25 在Spring中如何更有效地使用JDBC
  • 21.26 请解释Spring中的IoC容器
  • 21.27 在Spring中可以注入null或空字符串吗
  • 反侵权盗版声明
  • 其 他
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

电子工业出版社

电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。