书籍摘要-spring 源码深度解析

2021-07-13 07:07

阅读:420

标签: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。

书籍摘要-spring 源码深度解析

标签:app   连接   dtd   ebean   ice   list   循环   aop   creation   

原文地址:https://www.cnblogs.com/mexding/p/9542658.html


评论


亲,登录后才可以留言!