书籍摘要-spring 源码深度解析
Posted mexding
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了书籍摘要-spring 源码深度解析相关的知识,希望对你有一定的参考价值。
第 1 章:spring 整体架构和环境搭建
spring 是分层的,主要分为网络层、数据库连接层、核心容器层、 AOP 层和测试层。
核心容器中实现了 IOC 和依赖注入,方法是 BeanFactory。数据库连接层封装了 JDBC,兼容多种 ORM 框架。
第 2 章:容器的基本实现
DefaultListableBeanFactory 是加载 Bean 的核心类,XmlBeanFactory 继承了这个类。
分三步走,首先获取 XML 文件验证模式原理,然后将文件转换成 Document 对象,最后解析并注册BeanDefinition。
加载资源文件原理?首先定义 Resource 接口封装了底层资源。然后针对不同来源的资源封装了不同的实现类。最后将资源控制权交给 XmlBeanDefinitionReader。
获取 XML 文件验证模式原理?判断是否包含 DOCTYPE,包含就是 DTD,否则就是 XSD。
第 5 章:bean 的加载
这章以接口 BeanFactory 及其实现类 XmlBeanFactory 为核心进行源码分析。
spring 将循环依赖分为三种:一是构造器类型,这种无法解决,只能抛出 BeanCurrentlyInCreationException。二是 setter 类型,这种单例情况能够解决,方式是提前暴露创建中的 bean。三是 “prototype” 作用域的 bean,这种同样无法解决,因为 spring 不缓存 “prototype” 作用域的 bean ,无法提前暴露创建中的 bean。
循环依赖解决方案?spring 创建单例 bean 时,为了避免循环依赖,不等 bean 创建完成就将其 ObjectFactory 暴露到缓存中,提供给其它 bean 依赖。
第 6 章:容器功能扩展
这章以接口 ApplicationContext 为核心进行源码分析。
第 7 章:AOP
这章以 AOP 实现原理为核心进行源码分析。
第 12 章:spring 消息
Java Message Service( java 消息服务 ),简称 JMS,是 java 平台面向消息中间件的 api,用于程序间消息的异步通信。
spring 通过整合如 activeMQ 等消息中间件,可以实现 JMS。
以上是关于书籍摘要-spring 源码深度解析的主要内容,如果未能解决你的问题,请参考以下文章