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