批量上传,套装书可能不全,下单前咨询在线客服!有特殊要求,下单前请咨询客服!
¥ 61.82 4.8折 ¥ 128 全新
库存11件
作者付政委
出版社电子工业出版社
ISBN9787121444203
出版时间2022-10
装帧平装
开本16开
定价128元
货号29478460
上书时间2024-11-03
Spring是一个优秀的轻量级Java开发框架。2003年6月,Rod Johnson创建了Spring框架,次发布在Apache 2.0许可证下,后将其改名为Spring并且正式发布。
2002年10月,Rod Johnson在Expert One-on-One J2EE Design and Development一书中,对Java EE系统的框架臃肿、低效、脱离现实等问题提出了质疑,并提出了一个基于普通Java类和依赖注入的简单解决方案。然后,Rod Johnson创建了Interface 21框架。它是一个从实际需求出发,着重于轻便、灵巧,易于开发、测试和部署的轻量级开发框架。Spring框架以Interface 21框架为基础,经过重新设计和内容的不断丰富,里程碑式的Spring 1.0版本于2004年3月正式发布。同年,Rod Johnson又推出了一部堪称经典的图书Expert one-on-one J2EE Development without EJB,该书在Java开发领域掀起了轩然大波,不断改变着Java开发者对程序设计和开发的思考方式。
对于希望长期从事编程开发的架构师和技术研发人员,不仅要熟练使用Spring框架,还要掌握其源码设计,通过学习这些优秀的设计思想和设计模式在实际场景中的应用方法,提高自己的业务工程架构设计能力,以及对基于Spring框架所实现的一些技术类组件的驾驭与把控能力。
为什么撰写本书
大部分使用Spring框架的研发人员在遇到Spring框架的报错提醒,以及需要基于Spring框架开发SpringBoot Starter等技术类组件时,会尝试阅读Spring框架的源码。由于Spring框架的源码体量庞大、语法复杂,也不像平常的业务流程开发代码一样具有分层结构,并且其中使用了大量的设计模式,所以阅读难度较大。研发人员很难厘清其中的调用链路和各个类之间的关系。
笔者阅读了不少关于Spring 的图书,在反复学习源码后,仍然难以理解Spring 框架中各个功能的实现细节。其中一个原因是自己没有动手实践,只阅读了图书,很难完全掌握Spring 框架的精髓。因此,笔者结合《Spring 源码深度解析》《精通Spring 4.x——企业应用开发实战》等图书,以及GitHub 中的优秀案例——code4craft/tiny-spring、DerekYRC/mini-spring 等,逐步完成了Spring 框架中核心源码的实现,并扩展了ORM框架。
在编写的过程中,还收到了GitHub 用户zh-d-d、cwjokaka、numgin 提交的PR,在此表示感谢。在学习过程中,笔者对Spring 框架有了非常深入的了解和认识,也体会了更多精妙的设计原则和设计模式。所以,我把关于手动实现简单版Spring 框架的内容编写成书,希望可以帮助更多的研发人员学习Spring 源码,编写出有价值的设计方案。
本书主要内容
本书采用从零手写Spring 的方式,摒弃Spring 源码中繁杂的内容,选择整体框架中的核心逻辑,简化代码实现过程,保留核心功能,如IOC、AOP、Bean 的生命周期、上下文、作用域和资源处理等。在开发过程中,细化功能模块,逐步完成一个简单版的Spring 框架。
本书共21 章。引言介绍了学习Spring 的方法,以及本书源码的获取和使用方式。
• 第1 ~ 10 章:主要介绍IOC 容器,逐步完善一个简单的Spring Bean 容器的相关功能,引入实例化策略、注入属性和依赖、设计应用上下文、处理Bean 对象的生命周期,以及实现感知容器对象的监听等。
• 第11 ~ 12 章:主要介绍AOP 切面,基于JDK、Cglib 的动态代理、方法拦截、切点表达式等技术,将代理与Spring Bean 容器整合,提供AOP 切面功能。
• 第13 ~ 17 章:扩展简单版Spring 框架的自动化功能,完成自动扫描注册、注解和代理注入,以及通过三级缓存处理对象的循环依赖等功能。
• 第18 ~ 21 章:基于简单实现的Spring 框架整合JDBC、事务的功能,开发一个简单版的ORM 框架,并将ORM 框架整合到Spring Bean 容器中,介绍自定义代理对象的扫
描和注册过程。
如何阅读本书
本书主要通过渐进式开发功能模块,以实现整个Spring 框架的核心源码开发。首先,每章开头都会列出难度和重点;然后,正文中会介绍要处理的问题、具体设计和实现代码;后,给出测试验证和本章总结。
在阅读本书的过程中,建议读者先阅读“引言”,以便从全局的视角了解本书要实现的Spring 框架的内容,掌握学习方法。同时,“引言”中也列举了本书工程源码的环境配置、获取和使用方法。
致谢
要特别感谢我的父母(付井海、徐文杰)、妻子(郭维清),由于他们在日常生活中分担了许多家庭任务,才让我有更多的时间投入文字创作中,使得这本书能与广大读者见面。
感谢灵魂设计师Beebee老师为本书设计封面插图。
博文视点的宋亚东编辑的热情推动终促成了我与电子工业出版社的合作。感谢电子工业出版社博文视点对本书的重视,以及为本书出版所做的一切。
由于笔者水平有限,书中难免存在一些疏漏和不足,希望广大同行专家和读者给予批评与指正。
付政委(小傅哥)
《手写Spring:渐进式源码实践》基于Spring框架的核心逻辑,通过实现简化版Spring框架的方式,对Spring进行分析、设计和实践。本书以实践为核心,摒弃Spring源码中繁杂的内容,选择框架中的核心逻辑,简化代码实现过程,保留核心功能,如IOC、AOP、Bean的生命周期、上下文、作用域、资源处理、JDBC、事务、开发简易版ORM框架、将ORM框架整合到Spring框架中等内容的方案设计和源码实现。在Spring框架功能模块的开发过程中,逐步介绍并深入分析其中所涉及的设计原则和设计模式,使读者游刃有余地解决在调试Spring源码及开发SpringBoot Starter组件时遇到的问题。
《手写Spring:渐进式源码实践》既可以作为计算机相关行业研发人员的辅导书,也可以作为高等院校计算机专业学生的参考书。无论是初学者,还是中、高级研发人员,都能从本书中获得启发。
付政委(小傅哥)
作为一名一线互联网Java工程师、架构师,曾开发过交易、营销类项目,运营、活动类项目,设计过中间件,组织过系统重构,编写过技术专利。他不仅从事业务系统的开发工作,也经常做一些字节码插桩类的设计和实现,对架构的设计和落地具有丰富的经验。他既热衷于Java语言,也喜欢研究中继器、I/O板卡、C#和PHP,是一名活跃的技术“折腾者”。常逛GitHub,乐于分享技术文章。
沉淀、分享、成长,让自己和他人都能有所收获!
目录
引言 /1
第1章 实现一个简单的Spring Bean容器 / 7
1.1 容器是什么 / 7
1.2 简单容器设计 / 8
1.3 简单容器实现 / 9
1.4 容器使用测试 / 12
1.5 本章总结 / 13
第2章 实现Bean对象的定义、注册和获取 / 14
2.1 容器的思考 / 14
2.2 完善容器设计 / 15
2.3 完善容器实现 / 16
2.4 Bean 生命周期测试 / 22
2.5 本章总结 / 24
第3章 基于Cglib实现含构造函数的类实例化策略 / 25
3.1 实例化问题 / 25
3.2 实例化策略设计 / 26
3.3 实例化策略代码实现 / 27
3.4 构造函数对象测试 / 32
3.5 本章总结 / 35
第4章 注入属性和依赖对象 / 36
4.1 Bean对象拆解思考 / 36
4.2 属性填充设计 / 37
4.3 属性填充实现 / 38
4.4 注入属性测试 / 43
4.5 本章总结 / 46
第5章 资源加载器解析文件注册对象 / 47
5.1 对象创建问题 / 47
5.2 资源加载和解析设计 / 48
5.3 资源加载和解析设计实现 / 49
5.4 配置Bean对象注册测试 / 60
5.5 本章总结 / 64
第6 章 实现应用上下文 / 65
6.1 分治Bean 对象功能 / 65
6.2 Bean 对象扩展和上下文设计 / 66
6.3 Bean 对象扩展和上下文实现 / 68
6.4 应用上下文功能测试 / 79
6.5 本章总结 / 83
第7 章 Bean 对象的初始化和销毁/ 84
7.1 容器管理Bean 功能 / 84
7.2 初始化和销毁设计 / 85
7.3 初始化和销毁实现 / 87
7.4 容器功能测试 / 97
7.5 本章总结 / 99
第8 章 感知容器对象 / 101
8.1 Spring Bean 容器的功能 / 101
8.2 感知容器设计 / 102
8.3 感知容器实现 / 103
8.4 Aware 接口的功能测试 / 111
8.5 本章总结 / 114
第9 章 对象作用域和FactoryBean/ 117
9.1 Bean 对象的来源和模式 / 117
9.2 FactoryBean 和对象模式设计 / 118
9.3 FactoryBean 和对象模式实现 / 119
9.4 代理Bean 和对象模式测试 / 128
9.5 本章总结 / 132
第10 章 容器事件和事件监听器 / 134
10.1 运用事件机制降低耦合度 / 134
10.2 事件观察者设计 / 135
10.3 事件观察者实现 / 136
10.4 事件使用测试 / 146
10.5 本章总结 / 148
第11 章 基于JDK、Cglib 实现AOP 切面 / 150
11.1 动态代理 / 150
11.2 AOP 切面设计 / 151
11.3 AOP 切面实现 / 152
11.4 AOP 切面测试 / 163
11.5 本章总结 / 165
第12 章 把AOP 融入Bean 的生命周期 / 166
12.1 AOP 与框架整合思考 / 166
12.2 AOP 切面设计 / 167
12.3 AOP 切面实现 / 168
12.4 切面使用测试 / 176
12.5 本章总结 / 179
第13 章 自动扫描注册Bean对象 / 180
13.1 注入对象完善点 / 180
13.2 自动扫描注册设计 / 181
13.3 自动扫描注册实现 / 182
13.4 注册Bean 对象测试 / 190
13.5 本章总结 / 193
第14 章 通过注解注入属性信息 / 194
14.1 引入注入注解 / 194
14.2 注入属性信息设计 / 195
14.3 注入属性信息实现 / 196
14.4 注解使用测试 / 206
14.5 本章总结 / 208
第15 章 给代理对象设置属性注入 / 210
15.1 代理对象创建过程问题 / 210
15.2 代理对象属性填充设计 / 211
15.3 代理对象属性填充实现 / 212
15.4 代理对象属性注入测试 / 219
15.5 本章总结 / 221
第16 章 通过三级缓存解决循环依赖 / 222
16.1 复杂对象的创建思考 / 222
16.2 循环依赖设计 / 223
16.3 循环依赖实现 / 227
16.4 循环依赖测试 / 234
16.5 本章总结 / 238
第17 章 数据类型转换 / 239
17.1 类型转换设计 / 239
17.2 类型转换实现 / 240
17.3 类型转换测试 / 249
17.4 本章总结 / 251
第18 章 JDBC 功能整合 / 252
18.1 JdbcTemplate 说明 / 252
18.2 整合JDBC 服务设计 / 253
18.2 整合 JDBC 服务开发 / 254
18.3 JDBC 功能测试 / 258
18.4 本章总结 / 260
第19 章 事务处理 / 261
19.1 了解事务 / 261
19.2 事务功能设计 / 262
19.3 事务功能实现 / 264
19.4 切面事务测试 / 272
19.5 本章总结 / 276
第20 章 ORM 框架实现 / 278
20.1 简单ORM 框架设计 / 278
20.2 简单ORM 框架实现 / 279
20.3 ORM 框架使用测试 / 287
20.4 本章总结 / 290
第21 章 将ORM 框架整合到Spring Bean容器中 / 291
21.1 ORM-Spring 整合设计 / 291
21.2 ORM-Spring 整合实现 / 292
21.3 整合功能验证 / 299
21.4 本章总结 / 302
《手写Spring:渐进式源码实践》基于Spring框架的核心逻辑,通过实现简化版Spring框架的方式,对Spring进行分析、设计和实践。本书以实践为核心,摒弃Spring源码中繁杂的内容,选择框架中的核心逻辑,简化代码实现过程,保留核心功能,如IOC、AOP、Bean的生命周期、上下文、作用域、资源处理、JDBC、事务、开发简易版ORM框架、将ORM框架整合到Spring框架中等内容的方案设计和源码实现。在Spring框架功能模块的开发过程中,逐步介绍并深入分析其中所涉及的设计原则和设计模式,使读者游刃有余地解决在调试Spring源码及开发SpringBoot Starter组件时遇到的问题。
《手写Spring:渐进式源码实践》既可以作为计算机相关行业研发人员的辅导书,也可以作为高等院校计算机专业学生的参考书。无论是初学者,还是中、高级研发人员,都能从本书中获得启发。
付政委(小傅哥)
作为一名一线互联网Java工程师、架构师,曾开发过交易、营销类项目,运营、活动类项目,设计过中间件,组织过系统重构,编写过技术专利。他不仅从事业务系统的开发工作,也经常做一些字节码插桩类的设计和实现,对架构的设计和落地具有丰富的经验。他既热衷于Java语言,也喜欢研究中继器、I/O板卡、C#和PHP,是一名活跃的技术“折腾者”。常逛GitHub,乐于分享技术文章。
沉淀、分享、成长,让自己和他人都能有所收获!
本书以实战为导向,从零开始,循序渐进地带领大家手写一个简易版的 Spring 框架。阅读本书不仅有助于理解 Spring 核心原理,学习其优秀的设计思想,还可以提高个人编程能力。只要跟着作者动手实践起来,遇到问题多加思考,相信你一定会有很多收货!
Guide哥
GitHub开源项目JavaGuide作者
本书从实际动手出发,从零构建一个简易版的Spring框架,涵盖了Spring框架的核心基础功能,能够使读者从零开始,由浅入深地理解Spring框架的核心技术,强烈支持本书。
冰河
互联网资深技术专家,《深入理解高并发编程》《深入理解分布式事务》《MySQL技术大全:开发、优化与运维实战》等多本畅销书的作者,公众号“冰河技术”作者
Spring是Java程序员工作过程中的经典框架,深入了解Spring框架的设计模式和实现逻辑能更好地提升Java程序员的编程能力。小傅哥是CSDN的优秀博主,具有多年的程序开发和创作经验。本书将Spring源码中的核心逻辑进行抽离,剖析实现过程,能帮助Java程序员及在校学生更好地学习Spring框架的核心技术。
蒋涛
CSDN创始人&董事长
近十年来,Spring框架在企业级项目开发中得到了非常广泛的运用,正如其官方网站描述的那样:Spring,the source for modern java。如果想了解开发框架中的常用设计模式和原则、想深入钻研Spring框架的实现原理,以及想自己动手打造一个MySpring框架,那么本书是一个合适的选择。
赖帆
CSDN年度十大博客之星
对于技术研发人员来说,要想充分发挥Spring框架的强大功能,离不开对Spring框架源码的解析。本书不仅能够全面解析Spring框架的核心逻辑,更能带领读者完成一个简化版的Spring框架,是一本难得的佳作!
刘俊明
中国科学院大学研究生导师,课比科App联合创始人
本书从一种容易理解的实践视角,介绍了Spring框架的概念、算法设计和编程方法。对于初学者来说,学习和加强对Spring框架及面向对象的设计原则的理解是非常有必要的。本书从各个层次详细分析了Spring框架的各个组成技术,并且利用大量的示例讲解技术原理。本书既是初学者的入门读物,也是技术大牛的交流宝典,值得研读。
孙浩
科技移动研发部垂直业务技术负责人
市面上关于Spring框架的学习资料汗牛充栋,涉及原理分析和源码讲解的资料少之又少。本书独辟蹊径,通过动手编写一个简化版的Spring框架,帮助读者理解Spring框架源码及其设计思想。对于想要了解Spring框架原理的读者来说,相信阅读本书后将会大有收获。
王松
华为云MVP,公众号“江南一点雨”主理人
Spring已经迭代发展了很多年,版本复杂了很多,有很多开发者对其内部机制并没有进行深入的了解,在解析现有版本的Spring源码时非常困难。小傅哥撰写的这本书正好解决了这个问题,通过实现一个简化版的Spring框架,帮助读者更容易地理解Spring框架的各项核心功能,极大地降低了学习Spring框架原理的难度。如果你正在学习Spring框架,想要了解它的内部是如何运作的,那么这本书再合适不过了。
翟永超
《Spring Cloud微服务实战》作者,公众号“程序猿DD”作者
很多开发者都希望通过研读Spring框架的源码了解其背后优秀的设计原理,但在阅读Spring框架源码时会遇到各种各样的问题,百思不得其解。本书从零开始手写Spring框架,通过动手实践的方式,帮助读者快速理解Spring框架源码,并掌握核心功能的底层原理。相信读者阅读过后,一定会大有裨益。
张洪亮(@Hollis)
《深入理解Java核心技术:写给Java工程师的
干货笔记》作者
手写Spring:渐进式源码实践
全新嘉兴
¥ 66.39
手写SPRING渐进式源码实践
全新保定
¥ 66.20
手写Spring:渐进式源码实践
全新北京
¥ 51.20
手写Spring:渐进式源码实践
九品北京
¥ 53.56
手写Spring:渐进式源码实践
九品北京
¥ 53.18
手写Spring:渐进式源码实践
九五品廊坊
¥ 58.19
手写Spring:渐进式源码实践
九品北京
¥ 53.91
手写Spring(渐进式源码实践)
全新无锡
¥ 96.00
手写Spring:渐进式源码实践
全新广州
¥ 71.05
手写Spring:渐进式源码实践
全新成都
¥ 63.32
— 没有更多了 —
以下为对购买帮助不大的评价