标签:app 连接 dtd ebean ice list 循环 aop creation
第 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。
标签:app 连接 dtd ebean ice list 循环 aop creation
原文地址:https://www.cnblogs.com/mexding/p/9542658.html