Spring5核心原理与30个类手写实战.pdf 谭勇德 理解和掌握Spring的工作原理

《Spring 5核心原理与30个类手写实战》这本书深入讲解了Spring框架的核心原理和最新的5.0版本的新特性,通过手写代码实例的方式让读者更好地理解和掌握Spring的工作原理。

Spring5核心原理与30个类手写实战.pdf 谭勇德 理解和掌握Spring的工作原理

书籍特色如下:

1. **环境准备与顶层结构设计** - 书中将带你了解Spring框架的开发环境搭建和项目结构设计,为深入学习打下基础。

2. **原理深度解析** - 涵盖了Spring的IoC容器、AOP编程、事件机制、数据访问和事务管理等内容,不仅解释了概念,而且通过实例展示了如何运用。

3. **经典代码案例** - 每个知识点都配有经典代码案例,将理论与实践相结合,有助于读者更好地吸收知识。

4. **30个手写类实战** - 通过手写30个类,读者可以在实践中体会Spring框架的设计哲学,理解Spring框架的内部机制。

5. **设计思想与问题解决** - 书中还介绍了系统的设计思想,帮助读者提高解决实际问题的效率。

6. **架构思维与学习能力** - 旨在培养读者的架构思维和自我驱动力,这对于立志成为Java架构师的技术人员来说尤为重要。

此书适合以下读者群体:

- Java开发人员,希望在学习Spring框架或希望深入理解Spring源码的人。

- 计算机专业的高校生,希望将来从事Java Web开发的学生。

- 在职的Java开发人员,希望提升自身技术水平,向Java架构师方向发展的技术人员。

读者通过阅读本书,可以实现对Spring框架的深入理解和实战能力的提升,同时对Java Web开发有更深入的认知。

如果您对这本书感兴趣,可以在各大书店或网上书城购买。在阅读的过程中,结合实际开发经验,可以更好地吸收书中的知识,提升自己的技术能力。

  《Spring 5核心原理与30个类手写实战》作者简介

  谭勇德(Tom)

  10余年Java开发经验。

  咕泡学院联合创始人。

  在大型IT公司担任过CTO、系统架构师。

  精通Java语言、JS、CSS、AS、PHP等;负责过多个大型分布式系统的微服务架构的技术改造;多年以来对Spring框架有深入研究及独特见解;开发过多套企业内部UI框架和ORM框架;热衷于分享经验,共同进步。

  格言:不只做一个技术者,更要做一个思考者。

  《Spring 5核心原理与30个类手写实战》目录

  第1篇 Spring内功心法

  第1章 软件架构设计原则 2

  1.1 开闭原则 2

  1.2 依赖倒置原则 4

  1.3 单一职责原则 7

  1.4 接口隔离原则 10

  1.5 迪米特原则 12

  1.6 里氏替换原则 14

  1.7 合成复用原则 19

  1.8 设计原则总结 20

  第2章 Spring中常用的设计模式 21

  2.1 为什么要从设计模式开始 21

  2.1.1 写出优雅的代码 22

  2.1.2 更好地重构项目 24

  2.1.3 经典框架都在用设计模式解决问题 36

  2.2 工厂模式详解 36

  2.2.1 工厂模式的由来 36

  2.2.2 简单工厂模式 37

  2.2.3 工厂方法模式 41

  2.2.4 抽象工厂模式 43

  2.2.5 利用工厂模式重构的实践案例 47

  2.3 单例模式详解 53

  2.3.1 单例模式的应用场景 53

  2.3.2 饿汉式单例模式 53

  2.3.3 懒汉式单例模式 54

  2.3.4 反射破坏单例 60

  2.3.5 序列化破坏单例 61

  2.3.6 注册式单例模式 68

  2.3.7 线程单例实现ThreadLocal 74

  2.3.8 单例模式小结 75

  2.4 原型模式详解 75

  2.4.1 原型模式的应用场景 75

  2.4.2 浅克隆 77

  2.4.3 深克隆 79

  2.4.4 克隆破坏单例模式 81

  2.4.5 clone()方法的源码 82

  2.5 代理模式详解 82

  2.5.1 代理模式的应用场景 82

  2.5.2 静态代理 83

  2.5.3 动态代理 88

  2.5.4 代理模式与Spring 107

  2.5.5 静态代理和动态代理的本质区别 108

  2.5.6 代理模式的优缺点 109

  2.6 委派模式详解 109

  2.6.1 委派模式的定义及应用场景 109

  2.6.2 委派模式在源码中的体现 111

  2.7 策略模式详解 114

  2.7.1 策略模式的应用场景 114

  2.7.2 用策略模式实现选择支付方式的业务场景 114

  2.7.3 策略模式在JDK源码中的体现 122

  2.7.4 策略模式的优缺点 125

  2.7.5 委派模式与策略模式综合应用 125

  2.8 模板模式详解 129

  2.8.1 模板模式的应用场景 129

  2.8.2 利用模板模式重构JDBC操作业务场景 132

  2.8.3 模板模式在源码中的体现 136

  2.8.4 模板模式的优缺点 138

  2.9 适配器模式详解 139

  2.9.1 适配器模式的应用场景 139

  2.9.2 重构第三方登录自由适配的业务场景 141

  2.9.3 适配器模式在源码中的体现 149

  2.9.4 适配器模式的优缺点 153

  2.10 装饰者模式详解 153

  2.10.1 装饰者模式的应用场景 153

  2.10.2 装饰者模式和适配器模式对比 163

  2.10.3 装饰者模式在源码中的应用 163

  2.10.4 装饰者模式的优缺点 165

  2.11 观察者模式详解 165

  2.11.1 观察者模式的应用场景 165

  2.11.2 观察者模式在源码中的应用 175

  2.11.3 基于Guava API轻松落地观察者模式 176

  2.11.4 观察者模式的优缺点 177

  2.12 各设计模式的总结与对比 177

  2.12.1 GoF 23种设计模式简介 177

  2.12.2 设计模式之间的关联关系 178

  2.12.3 Spring中常用的设计模式 182

  2.13 Spring中的编程思想总结 183

  第2篇 Spring环境预热

  第3章 Spring的前世今生 186

  3.1 一切从Bean开始 187

  3.2 Spring的设计初衷 188

  3.3 BOP编程伊始 188

  3.4 理解BeanFactory 189

  3.5 AOP编程理念 189

  第4章 Spring 5系统架构 191

  4.1 核心容器 192

  4.2 AOP和设备支持 192

  4.3 数据访问与集成 193

  4.4 Web组件 194

  4.5 通信报文 194

  4.6 集成测试 194

  4.7 集成兼容 194

  4.8 各模块之间的依赖关系 194

  第5章 Spring版本命名规则 196

  5.1 常见软件的版本命名 196

  5.2 语义化版本命名通行规则 197

  5.3 商业软件中常见的修饰词 197

  5.4 软件版本号使用限定 198

  5.5 Spring版本命名规则 199

  第6章 Spring源码下载及构建技巧 200

  6.1 Spring 5源码下载 200

  6.2 基于Gradle的源码构建技巧 201

  6.3 Gradle构建过程中的坑 207

  第3篇 Spring核心原理

  第7章 用300行代码手写提炼Spring核心原理 210

  7.1 自定义配置 210

  7.1.1 配置application.properties文件 210

  7.1.2 配置web.xml文件 210

  7.1.3 自定义注解 211

  7.1.4 配置注解 212

  7.2 容器初始化 213

  7.2.1 实现1.0版本 213

  7.2.2 实现2.0版本 216

  7.2.3 实现3.0版本 223

  7.3 运行效果演示 227

  第8章 一步一步手绘Spring IoC运行时序图 228

  8.1 Spring核心之IoC容器初体验 228

  8.1.1 再谈IoC与DI 228

  8.1.2 Spring核心容器类图 229

  8.1.3 Web IoC容器初体验 232

  8.2 基于XML的IoC容器的初始化 237

  8.2.1 寻找入口 238

  8.2.2 获得配置路径 238

  8.2.3 开始启动 240

  8.2.4 创建容器 242

  8.2.5 载入配置路径 243

  8.2.6 分配路径处理策略 244

  8.2.7 解析配置文件路径 247

  8.2.8 开始读取配置内容 249

  8.2.9 准备文档对象 250

  8.2.10 分配解析策略 251

  8.2.11 将配置载入内存 252

  8.2.12 载入元素 257

  8.2.13 载入元素 261

  8.2.14 载入子元素 264

  8.2.15 载入子元素 266

  8.2.16 分配注册策略 267

  8.2.17 向容器注册 267

  8.3 基于注解的IoC初始化 270

  8.3.1 注解的前世今生 270

  8.3.2 定位Bean扫描路径 271

  8.3.3 读取注解的元数据 273

  8.3.4 扫描指定包并解析为BeanDefinition 277

  8.3.5 注册注解BeanDefinition 283

  8.4 IoC容器初始化小结 285

  第9章 一步一步手绘Spring DI运行时序图 287

  9.1 Spring自动装配之依赖注入 287

  9.1.1 依赖注入发生的时间 287

  9.1.2 寻找获取Bean的入口 288

  9.1.3 开始实例化 293

  9.1.4 选择Bean实例化策略 297

  9.1.5 执行Bean实例化 299

  9.1.6 准备依赖注入 301

  9.1.7 解析属性依赖注入规则 306

  9.1.8 注入赋值 310

  9.2 Spring IoC容器中那些鲜为人知的细节 314

  9.2.1 关于延时加载 314

  9.2.2 关于FactoryBean和BeanFactory 317

  9.2.3 再述autowiring 322

  第10章 一步一步手绘Spring AOP运行时序图 326

  10.1 Spring AOP初体验 326

  10.1.1 再述Spring AOP应用场景 326

  10.1.2 AOP中必须明白的几个概念 327

  10.1.3 使用Spring AOP的两种方式 329

  10.1.4 切入点表达式的配置规则 333

  10.2 Spring AOP源码分析 334

  10.2.1 寻找入口 334

  10.2.2 选择代理策略 338

  10.2.3 调用代理方法 341

  10.2.4 触发通知 347

  第11章 一步一步手绘Spring MVC运行时序图 352

  11.1 初探Spring MVC请求处理流程 352

  11.2 Spring MVC九大组件 353

  11.2.1 HandlerMapping 353

  11.2.2 HandlerAdapter 353

  11.2.3 HandlerExceptionResolver 354

  11.2.4 ViewResolver 354

  11.2.5 RequestToViewNameTranslator 354

  11.2.6 LocaleResolver 354

  11.2.7 ThemeResolver 355

  11.2.8 MultipartResolver 355

  11.2.9 FlashMapManager 355

  11.3 Spring MVC源码分析 355

  11.3.1 初始化阶段 356

  11.3.2 运行调用阶段 359

  11.4 Spring MVC优化建议 367

  第4篇 Spring手写实战

  第12章 环境准备 370

  12.1 IDEA集成Lombok插件 370

  12.1.1 安装插件 370

  12.1.2 配置注解处理器 373

  12.1.3 使用插件 374

  12.2 从Servlet到ApplicationContext 375

  12.3 准备基础配置 376

  12.3.1 application.properties配置 377

  12.3.2 pom.xml配置 377

  12.3.3 web.xml配置 378

  12.3.4 GPDispatcherServlet 378

  第13章 IoC顶层结构设计 380

  13.1 Annotation(自定义配置)模块 380

  13.1.1 @GPService 380

  13.1.2 @GPAutowired 381

  13.1.3 @GPController 381

  13.1.4 @GPRequestMapping 382

  13.1.5 @GPRequestParam 382

  13.2 core(顶层接口)模块 382

  13.2.1 GPFactoryBean 382

  13.2.2 GPBeanFactory 383

  13.3 beans(配置封装)模块 383

  13.3.1 GPBeanDefinition 383

  13.3.2 GPBeanWrapper 384

  13.4 context(IoC容器)模块 385

  13.4.1 GPAbstractApplicationContext 385

  13.4.2 GPDefaultListableBeanFactory 385

  13.4.3 GPApplicationContext 385

  13.4.4 GPBeanDefinitionReader 388

  13.4.5 GPApplicationContextAware 391

  第14章 完成DI模块的功能 392

  14.1 从getBean()方法开始 393

  14.2 GPBeanPostProcessor 395

  第15章 完成MVC模块的功能 396

  15.1 MVC顶层设计 396

  15.1.1 GPDispatcherServlet 396

  15.1.2 GPHandlerMapping 402

  15.1.3 GPHandlerAdapter 403

  15.1.4 GPModelAndView 406

  15.1.5 GPViewResolver 406

  15.1.6 GPView 407

  15.2 业务代码实现 409

  15.2.1 IQueryService 409

  15.2.2 QueryService 410

  15.2.3 IModifyService 410

  15.2.4 ModifyService 411

  15.2.5 MyAction 412

  15.2.6 PageAction 413

  15.3 定制模板页面 414

  15.3.1 first.html 414

  15.3.2 404.html 414

  15.3.3 500.html 415

  15.4 运行效果演示 415

  第16章 完成AOP代码织入 417

  16.1 基础配置 417

  16.2 完成AOP顶层设计 418

  16.2.1 GPJoinPoint 418

  16.2.2 GPMethodInterceptor 419

  16.2.3 GPAopConfig 419

  16.2.4 GPAdvisedSupport 420

  16.2.5 GPAopProxy 422

  16.2.6 GPCglibAopProxy 423

  16.2.7 GPJdkDynamicAopProxy 423

  16.2.8 GPMethodInvocation 425

  16.3 设计AOP基础实现 427

  16.3.1 GPAdvice 427

  16.3.2 GPAbstractAspectJAdvice 427

  16.3.3 GPMethodBeforeAdvice 428

  16.3.4 GPAfterReturningAdvice 429

  16.3.5 GPAfterThrowingAdvice 430

  16.3.6 接入getBean()方法 430

  16.4 织入业务代码 432

  16.4.1 LogAspect 432

  16.4.2 IModifyService 433

  16.4.3 ModifyService 434

  16.5 运行效果演示 435

  第5篇 Spring数据访问

  第17章 数据库事务原理详解 438

  17.1 从Spring事务配置说起 438

  17.2 事务的基本概念 439

  17.3 事务的基本原理 439

  17.4 Spring事务的传播属性 440

  17.5 数据库事务隔离级别 441

  17.6 Spring中的事务隔离级别 441

  17.7 事务的嵌套 442

  17.8 Spring事务API架构图 444

  17.9 浅谈分布式事务 444

  第18章 Spring JDBC源码初探 446

  18.1 异常处理 447

  18.2 config模块 448

  18.3 core模块 450

  18.4 DataSource 456

  18.5 object模块 457

  18.6 JdbcTemplate 458

  18.7 NamedParameterJdbcTemplate 458

  第19章 基于Spring JDBC手写ORM框架 459

  19.1 实现思路概述 459

  19.1.1 从ResultSet说起 459

  19.1.2 为什么需要ORM框架 464

  19.2 搭建基础架构 467

  19.2.1 Page 467

  19.2.2 ResultMsg 470

  19.2.3 BaseDao 471

  19.2.4 QueryRule 473

  19.2.5 Order 479

  19.3 基于Spring JDBC实现关键功能 480

  19.3.1 ClassMappings 480

  19.3.2 EntityOperation 483

  19.3.3 QueryRuleSqlBuilder 488

  19.3.4 BaseDaoSupport 498

  19.4 动态数据源切换的底层原理 507

  19.4.1 DynamicDataSource 508

  19.4.2 DynamicDataSourceEntry 509

  19.5 运行效果演示 510

  19.5.1 创建Member实体类 510

  19.5.2 创建Order实体类 511

  19.5.3 创建MemberDao 512

  19.5.4 创建OrderDao 512

  19.5.5 修改db.properties文件 514

  19.5.6 修改application-db.xml文件 515

  19.5.7 编写测试用例 516

  第6篇 Spring经验分享

  第20章 Spring 5新特性总结 520

  20.1 升级到Java SE 8和Java EE 7 520

  20.2 反应式编程模型 521

  20.3 使用注解进行编程 521

  20.4 函数式编程 522

  20.5 使用 REST 端点执行反应式编程 523

  20.6 支持HTTP/2 523

  20.7 Kotlin和Spring WebFlux 523

  20.8 使用Lambda表达式注册Bean 524

  20.9 Spring Web MVC 支持最新的 API 524

  20.10 使用JUnit 5执行条件和并发测试 525

  20.11 包清理和弃用 526

  20.12 Spring核心和容器的一般更新 526

  20.13 我如何看Spring 5 527

  第21章 关于Spring的经典高频面试题 528

  21.1 什么是Spring框架,Spring框架有哪些主要模块 528

  21.2 使用Spring框架能带来哪些好处 528

  21.3 什么是控制反转(IoC),什么是依赖注入 529

  21.4 在Java中依赖注入有哪些方式 529

  21.5 BeanFactory和ApplicationContext有什么区别 530

  21.6 Spring提供几种配置方式来设置元数据 530

  21.7 如何使用XML配置方式配置Spring 531

  21.8 Spring提供哪些配置形式 532

  21.9 怎样用注解的方式配置Spring 533

  21.10 请解释Spring Bean的生命周期 534

  21.11 Spring Bean作用域的区别是什么 535

  21.12 什么是Spring Inner Bean 535

  21.13 Spring中的单例Bean是线程安全的吗 536

  21.14 请举例说明如何在Spring中注入一个Java集合 536

  21.15 如何向Spring Bean中注入java.util.Properties 537

  21.16 请解释Spring Bean的自动装配 538

  21.17 自动装配有哪些局限性 538

  21.18 请解释各种自动装配模式的区别 539

  21.19 请举例解释@Required注解 539

  21.20 请举例说明@Qualifier注解 540

  21.21 构造方法注入和设值注入有什么区别 540

  21.22 Spring中有哪些不同类型的事件 541

  21.23 FileSystemResource和ClassPathResource有什么区别 542

  21.24 Spring中用到了哪些设计模式 542

  21.25 在Spring中如何更有效地使用JDBC 543

  21.26 请解释Spring中的IoC容器 543

  21.27 在Spring中可以注入null或空字符串吗 543


下载地址

Spring5核心原理与30个类手写实战.pdf 谭勇德 理解和掌握Spring的工作原理下载

本站内容仅用于学习和交流,请于下载24小时内删除!

mobi图书网 电子书下载

此书籍由mobi图书网书友分享,如果您喜欢该资源,请支持并购买正版,如有侵权,请联系我们删除!


【电脑端】azw3、mobi、txt等格式推荐使用稻壳阅读器阅读


【手机端】可使用番茄小说等支持mobi、pdf、txt格式的APP


【注意】手机端仅kindle阅读APP支持azw3格式,建议转换格式再用手机浏览。

发现资源盗用,请联系站长V:abacadaba
close
mobi图书网
mobi图书网管理员

上一篇:拿工具来抓蛇什么意思,抓蛇是抓头还是尾巴
下一篇:技术之瞳——阿里巴巴技术笔试心得 .pdf 校园招聘笔试项目

留言评论

暂无留言