计算机
类型
5.2
豆瓣评分
可以朗读
语音朗读
129千字
字数
2019-07-01
发行日期
展开全部
主编推荐语
超强实战技术升级指南,囊括源码、设计思想、架构思维、实战案例、开发经验。
内容简介
本书基于编程开发实践,不仅深度解析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月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。