Java开发人员都知道,阅读源码是非常好的学习方式,在我们日常工作中或多或少都会接触一些开源代码, 比如说最常用的Stuts、Hibermate. Spring, 这些源码的普及与应用程度远远超过我们的想象,正因为很多人使用,也在推动着源码不断地完善。这些优秀的源码中有着多年积淀下来的精华,这些精华是非常值得我们学习的,不管我们当前是什么水平,通过反复阅读源码,能力都会有所提升,小到对源码所提供的功能上的使用更加熟练,大到使我们的程序设计更加完美优秀。但是,纵观我们身边的人,能够做到通读源码的真的是少之又少,究其原因,不外乎以下几点。
- 阅读源码绝对算得上是一件费时费力的工作,需要读者耗费大量的时间去完成。而作为开发人员,毕竟精力有限,实在没办法拿出太多的时间放在源码的阅读上。
- 源碼的复杂性。任何一款源码经历了多年的发展与提炼,其复杂程度可想而知。当我们阅读源码的时候,大家都知道需要通过工具来跟踪代码的运行,进而去分析程序。但是,当代码过于复杂,环环相扣绕来绕去的时候,跟进了几十个甚至几百个函数后,这时我们已经不知道自己所处的位置了,不得不再重来,但是一次又一次地,最终发现自己根本无法驾驭它,不得不放弃。
- 有些源码发展多年,会遇到各种各样的问题,并对问题进行了解决,而其中有些问题对于我们来说甚至可以用莫名其妙来修饰,有时候根本想不出会在什么情况下发生。我们查阅各种资料,查询无果后,会失去耐心,最终放弃。
本书完全从开发者的角度去剖析源码,每一章都会提供具有代表性的实例, 并以此为基础进行功能实现的分析,而不是采取开篇就讲解容器怎么实现、AOP怎么实现之类的写法。在描述的过程中,本书尽可能地把问题分解,使用剥洋葱的方式一层一层地将逻辑描述清楚,帮助读者由浅入深地进行学习,并把其中的难点和问题各个击破,而不是企图一下让读者理解一个 复杂的逻辑。
本书从核心实现、企业应用和Spring Boot这3个方面,由浅入深、由易到难地对Spring源码展开了系统的讲解,包括Spring整体架构和环境搭建、容器的基本实现、默认标签的解析、自定义标签的解析、bean的加载、容器的功能扩展、AOP、数据库连接JDBC、整合MyBatis、事务SpringMVC、远程服务、Spring消息、Spring Boot体系原理等内容。
本书不仅介绍了使用Spring框架开发项目必须掌握的核心概念,还指导读者使用Spring框架编写企业级应用,并针对在编写代码的过程中如何优化代码、如何使得代码高效给出了切实可行的建议,从而帮助读者全面提升实战能力。
本书语言简洁,示例丰富,可帮助读者迅速掌握使用Spring进行开发所需的各种技能。本书适合于已具有一定Java编程基础的读者,以及在lava平台下进行各类软件开发的开发人员、测试人员等。
本书结构
本书分为3部分:核心实现,企业应用和Spring Boot。
第1部分:核心实现(第1~7章):是Spring功能的基础,也是企业应用部分的基础,主要对容器以及AOP功能实现做了具体的分析。如果读者之前没有接触过Spring源代码,建议认真阅读这个部分,否则阅读企业应用部分时会比较吃力。
第2部分:企业应用(第8~13章);在核心实现部分的基础上围绕企业应用常用的模块进行讨论,这些模块包括Spring整合JDBC、Spring 整合MyBatis.事务、SpringMVC.远程服务、Spring 消息服务等,旨在帮助读者在日常开发中更加高效地使用Spring。
第3部分:Spring Boot(第14章): 对近期流行的Spring Boot的体系原理进行分析,剥离其神秘的面纱。Spring Boot作为Spring外的一个独立分支,可以说将Spring 的扩展能力应用得出神入化,仔细研读后一定会受益匪浅。
第一部分核心实现
第1章Spring整体架构和环境搭建
- 1.1 Spring的整体架构
- 1.2环境措建
- 1.3 cglib和objenesis的编译错误解决
- 1.4 AspecU编译问题解决
第2章容器的基本实现
- 2.1容器基本用法
- 2.2功能分析
- 2.3工程搭建
- 2.4 Spring的结构组成
- 2.5容器的基础XmlBeanFactory
- 2.6获取XML的验证模式
- 2.7获取Document
- 2.8解析及注册BeanDefinitions
第3章默认标签的解析
- 3.1 bean标签的解析及注册
- 3.2 alias标签的解析
- 3.3 import标签的解析
- 3.4嵌入式beans标签的解析
第4章自定义标签的解析
- 4.1自定义标签使用
- 4.2自定义标签解析
第5章bean的加载
- 5.1 FactoryBean的使用
- 5.2缓存中获取单例bean
- 5.3从bean的实例中获取对象
- 5.4获取单例
- 5.5准备创建bean
- 5.6循环依赖
- 5.7创建bean
第6章容器的功能扩展
- 6.1设置配置路径
- 6.2扩展功能
- 6.3环境准备
- 6.4加载BeanFactory
- 6.5功能扩展
- 6.6 BeanFactory的后处理
- 6.7初始化非延迟加载单例
- 6.8 finishRefresh
第7章AOP
- 7.1动态AOP使用示例
- 7.2动态AOP自定义标签
- 7.3创建AOP代理
- 7.4静态AOP使用示例
- 7.5创建AOP静态代理
第二部分企业应用
第8章数据库连接JDBC
- 8.1 Spring连接数据库程序实现(JDBC)
- 8.2 save/update功能的实现
- 8.3 query功能的实现
- 8.4 queryForObject
第9章整合MyBatis
- 9.1 MyBatis独立使用
- 9.2 Spring整合MyBatis
- 9.3源码分析
第10章事务
- 10.1 JDBC方式下的事务使用示例
- 10.2事务自定义标签
- 10.3事务增强器
第11章SpringMVC
- 11.1 SpringMVC快速体验
- 11.2 ContextLloaderListener
- 11.3 DispatcherServlet
- 11.4 DispatcherServlet的逻辑处理
第12章远程服务
- 12.1 RMI
- 12.2 Httplnvoker
第13章Spring消息
- 13.1 JMS的独立使用
- 13.2 Sring整合AtiveMQ
- 13.3源码分析
第三部分Spring Boot
第14章Spring Boot体系原理
- 14.1 SpringBoot源码安装
- 14.2第一个Starter
- 14.3探索SpringApplication启动Spring
- 14.4 Starter自动化配置原理
- 14.5 Conditional机制实现
- 14.6属性自动化配置实现
- 14.7 Tomcat启动
由于文档的内容太多,所以只截取了部分内容展示,有想获取完整PDF文档的朋友看我主页哦