为什么说阅读源码很重要?
Java开发职员都知道,阅读源码是一个非常好的学习方式,在我们日常工作中或多或少都会打仗一些开源代码,好比说最常用的Struts、Hibernate、Spring,这些源码的普及与应用水平远远超过我们的想象,正因为很多人使用,也在推动着源码不断地去美满。这些精良的源码中有着多年积淀下来的英华,这些英华黑白常值得我们学习的,不管我们当前是什么水平,通过反复阅读源码本领能有所提升,小到对源码所提供的功能上的使用更加熟练,大到使我们的步伐计划更加完美精良。但是,纵观我们身边的人,能够做到通读源码的真的是少之又少,究其原因不外乎以下几点。
- 阅读源码绝对算得上是一件费时费力的工作,需要读者泯灭大量的时间去完成。 而作为开发职员,毕竟精力有限,实在没办法拿出太多的时间放在源码的阅读上。
- 源码的复杂性。 任何一款源码经历了多年的发展与提炼,其复杂水平可想而知。当我们阅读源码的时候,大家都知道需要通过工具来跟踪代码的运行,进而去分析步伐。但是,今世码过于复杂,环环相扣绕来绕去的时候,跟进了几十个甚至几百个函数后,这时我们已经不知道自己所处的位置了,不得不再重来,但是一次又一次的,最终发现自己根本无法驾驭它,不得不放弃。
- 有些源码发展多年,会遇到各种各样的题目,并对题目进行了解决,而这些题目有的对于我们来说甚至可以用莫名其妙来修饰,偶然候根本想不出会在什么情况下会发生。我们选择各种查阅资料,查询无果,失去耐心,最终放弃。
无论基于什么样的原因,放弃阅读源码始终不是一个明智的选择,因为你失去了一个跟大师学习的机会。而且,当你读过几个源码之后你会发现,他们的思想以及实现方式是相通的。这就是开源的好处。随着各种开源软件的发展,各家都会融合别家精良之处来不断美满自己,这样,到最后的结果就是全部的开源软件从计划上大概实现上都会变得越来越相似,也就是说当你读完某个精良源码后再去读另一个源代码, 速率会有很大提升。
以我为例, Spring 是我阅读的第一个源码, 险些耗尽了我将近半年的时间,其中各种煎熬可想而知,但是当我读完Spring再去读MyBatis只用了两周时间。 当然,暂且不论它们的复杂水平差别,至少我阅读的时候发现有很多相通的东西。当你第一次阅读的时候,你的重点一定是在源码的理解上,但是,当你读完第一个源码再去读下一个的时候,你自然而然地会带着批判大概说挑剔的眼光去阅读:为什么这个功能在我之前看的源码中是那样实现的,而在这里会是这样实现的?这其中的道理在哪里,哪种实现方式更精良呢? 而通过这样的对比及探索,你会发现,自己的进步快得不可思议。
我们已经有些纠结了,既然阅读源码有那么多的好处,但是很多同学却因为时间大概本领的题目而不得不放弃,岂不是太可惜?为了解决这个题目,我给大家带来了这份 “Spring源码深度解析学习笔记” ,在我学习Spring源码时,这份学习笔记对我有很大的帮助,盼望能对正在Spring门路上摸索的同仁们提供一些帮助。
为什么给大家保举这份学习笔记?
本笔记从焦点实现和企业应用两个方面,由浅入深、由易到难地对Spring源码展开了系统的解说,包括一下几点:
- Spring的计划理念和整体架构
- 容器的基本实现
- 默认标签的解析
- 自定义标签的解析
- bean 的加载
- 容器的功能扩展
- AOP
- 数据库连接JDBC
- 整合MyBatis
- 事务
- SpringMVC
- 远程服务
- Spring 消息服务等内容
本笔记不但介绍了使用Spring框架开发项目必须把握的焦点概念,还指导读者如何使用Spring框架编写企业级应用,并针对在编写代码的过程中如何优化代码、如何使得代码高效给出切实可行的建议,从而帮助读者全面提升实战本领。
本书语言简洁,示例丰富,可帮助读者迅速把握使用Spring 进行开发所需的各种技能。本书适合于已具有一定 Java编程基础的读者,以及在Java平台下进行各类软件开发的开发职员、测试职员等。
ps:由于内容较多,本次将展示部门,如果看得不过瘾想更加深入地了解本笔记彻底把握 Spring源码 可在文末了解详情。
Spring架构图
第一部门 焦点实现
第一章 Spring整体架构和情况搭建
第二章 容器的基本实现
- 容器基本用法
- 功能分析
- 工程搭建
- Spring的结构组成
- 容器的基础 XmlBeanFactory
- 获取XML的验证模式
- 获取 Document
- 解析及注册 BeanDefinitions
第三章 默认标签的解析
- Bean 标签的解析及注册
- alias 标签的解析
- import 标签的解析
- 嵌入式 beans 标签的解析
第四章 自定义标签的解析
第五章 bean的加载
- FactoryBean 的使用
- 缓存中获取单例 bean
- 从 bean 的实例中获取对象
- 获取单例
- 准备创建 bean
- 循环依赖
- 创建 bean
第六章 容器的功能扩展
- 设置配置路径
- 扩展功能
- 情况准备
- 加载 BeanFactory
- 功能扩展
- BeanFactory 的后处置惩罚
- 初始化非耽误加载单例
- finishRefresh
第七章 AOP
- 动态 AOP 使用示例
- 动态 AOP 自定义标签
- 创建 AOP 代理
- 静态 AOP 使用示例
- 创建 AOP 静态代理
第二部门 企业应用
第八章 数据库连接 JDBC
- Spring 连接数据库步伐实现(JDBC)
- save/update 功能的实现
- query 功能的实现
- queryForObject
第九章 整合 MyBatis
- MyBatis 独立使用
- Spring 整合 Mybatis
- 源码分析
第十章 事务
- JDBC 方式下的事务使用示例
- 事务自定义标签
- 事务增强器
第十一章 SpringMVC
- SpringMVC 快速体验
- ContextLoaderListener
- DispatcherSerclet
- DispatcherServlet 的逻辑处置惩罚
第十二章 远程服务
第十三章 Spring消息
- JMS 的独立使用
- Spring 整合 ActiveMQ
- 源码分析
写在最后
本笔记完全从开发者的角度去剖析源码,每一章都会提供具有代表性的实例,并以此为基础进行功能实现的分析,而不是采取开篇就解说什么容器怎么实现、AOP怎么实现之类的写法。在描述的过程中,本书尽可能地把题目分解,使用剥洋葱的方式一层一层地将逻辑描述清晰,帮助读者由浅入深地进行学习,并把这些难点和题目各个击破,而不是企图一下让读者理解一个复杂的逻辑。
在阅读源码的过程中,我们难免会遇到各种各样的生僻功能,这些功能在特定的场所会非常有效,但是可能多数情况下并不是很常用,甚至都查阅不到相干的使用资料。本笔记中重点针对这种情况提供了相应的实用示例,让读者更加全面地了解Spring所提供的功能,对代码能知其然还知其所以然。
本笔记按照每章所提供的示例跟踪Spring源码的流程,尽可能保证代码的连续性,使读者的思维不被打乱,让读者看到Spring的执行流程,旨在尽量使读者在阅读完本书后即使在不阅读Spring源码的情况下也可以对Spring源码进行优化,甚至通过扩展源码来满足业务需求,这对开发职员来说是一个很高的要求。本笔记就盼望能帮助读者全面提升实战本领。
获取方式:需要这份 《Spring源码深度解析》学习笔记 点赞、转发、收藏之后发送 私信【Spring源码】 获取完整下载路径的方式! |