1、BeanFactory

1.1、BeanDefinition类结构

1.2、BeanFactory类结构

2、ApplicationContext

2.1、类层次结构

2.2、AbstractApplicationContext刷新时序图

2.3、BeanDefinition的载入

(1)解析属性id,name,同时name当作别名,如果id为空,则将第一个别名作为beanName,同时检查名字的唯一性

(2) 解析class,parent,基于此创建GenericBeanDefinition

(3) 解析bean属性,singleton,scope,abstract,lazy_init,autowire,depends-on,autowire-candidate,primary,init-method,destory-method,factory-method,factory-bean属性

(4)解析子结点的meta结点

(5)解析子结点的lookup-method结点

(6)解析子结点的replace-method结点

(7)解析constructor-arg子结点,解析index,type,name,ref,value属性,ref,value属性只能有其中一个。其子结点下只能有一个子结点。可能有下面几中子结点bean,ref,idref,value,null,array,list,set,map,props

(8)解析子结点property

(9)解析子结点qualifier

3、Bean创建

3.1、创建实例策略类

有三种方式来实例化,一种通过BeanDefinition中的定义的beanClass,通过其获取默认构造函数来实体化,另外一种是通过指定的构造器实体化,最后一种是通过工厂方法来实例化

3.2 bean创建时序图

4、BeanPostProcessor

4.1、类结构

BeanPostProcessor:允许自定义修改bean实例的工厂钩子

InstantiationAwareBeanPostProcessor:BeanPostProcessor的子接口,用于添加实例化之前回调及实例化后显示属性调协或者autowire发生前的回调

MergedBeanDefinitionPostProcessor:在合并Bean定义时的后置处理回调

SmartInstantiationAwareBeanPostProcessor:InstantiationAwareBeanPostProcessor接口的扩展,添加预测处理bean的最终类型的回调。在创建实例时应用,包含确定使用构造函数,及针对循环依赖时的早期引用处理。

DestructionAwareBeanPostProcessor:BeanPostProcessor的子接口,用于添加销毁前的回调

5、bean属性

5.1、类层次结构

6、type转换

6.1、类层级结构

主要包含Converter及Formatter

7、BeanFactoryPostProcessor

7.1、类结构图

8、MessageSource

用于国际化的接口,其类图结构为

spring中IOC设计与实现相关推荐

  1. Spring中IOC和AOP的详细解释(转)

    原文链接:Spring中IOC和AOP的详细解释 我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂. 主要用到的设计模式有工厂 ...

  2. spring中ioc是什么

    摘自:https://www.jb51.net/article/123900.htm IoC是一种让服务消费者不直接依赖于服务提供者的组件设计方式,是一种减少类与类之间依赖的设计原则.下面通过本文给大 ...

  3. spring中IoC和AOP的实现

    6.2 spring IoC IoC容器是Spring的核心.容器从配置文件中读取需要创建哪些对象,并在创建后按照要求把它们进行装配,通过这样的方法达到业务代码解耦的目的.不仅如此,spring还负责 ...

  4. spring中IOC是什么意思 个人觉得解释的非常有意思

    用一个直观的列子来告诉大家:在spring中什么是ioc IoC就是Inversion of Control,控制反转.在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控 ...

  5. Spring中IOC和AOP的详细解释

    我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂. 主要用到的设计模式有工厂模式和代理模式. IOC就是典型的工厂模式,通过s ...

  6. Spring中IoC的入门实例

    Spring的模块化是很强的,各个功能模块都是独立的,我们可以选择的使用.这一章先从Spring的IoC开始.所谓IoC就是一个用XML来定义生成对象的模式,我们看看如果来使用的. 数据模型 1.如下 ...

  7. Spring中IoC的入门实例[转]

    Spring的模块化是很强的,各个功能模块都是独立的,我们可以选择的使用.这一章先从Spring的IoC开始.所谓IoC就是一个用XML来定义生成对象的模式,我们看看如果来使用的. 数据模型 1.如下 ...

  8. Spring中IoC两种接口和两种依赖注入方式的比较

    spring是一个开源框架,是为了解决企业应用程序开发的复杂性而创建的,为J2EE应用程序开发提供集成的框架.简单来说,spring是一个轻量级的控制反转IOC和面向切面AOP的容器框架.spring ...

  9. 谈谈自己对Spring中IOC和AOP的理解

    Spring框架的核心思想主要是IOC和AOP的思想 IOC IOC概念 Spring中的IOC AOP AOP概念 百度百科的解释 个人理解 AOP思想 IOC IOC概念 所谓IOC即 Inver ...

最新文章

  1. document.all.item的解释和一个表单向多页面提交
  2. Office快捷键大全之三(Access快捷键下篇)
  3. id vue2路由传参_Vue2.0中 $route 和 $router 的区别
  4. 什么网了解c语言,什么是c语言?
  5. 【java笔记】大数操作(BigIntegerBigDecimal)
  6. 多线程编程、线程同步|安全和线程通信
  7. 解数独(Python)
  8. DevExpress 表中数据导出
  9. 操作系统 第二部分 进程管理(一)
  10. 移远EC20模组网口SGMII通讯调试以及FC20wifi通讯调试
  11. postman安装与使用
  12. Android自定义控件 芝麻信用分雷达图
  13. win7 AnkhSVN 安装报错
  14. Linux添加WIFI驱动
  15. MATLAB批量修改图片名称
  16. java linkedblockingqueue_Java LinkedBlockingQueue take()用法及代码示例
  17. 【自动化】车间自动化十大必备装置!
  18. Gym - 100543G Virus synthesis Gym
  19. 什么是高可用性_什么是高可用性| 第2部分
  20. 51单片机寄存器详解

热门文章

  1. [iOS翻译]《The Swift Programming Language》系列:Welcome to Swift-01
  2. Redhat下的软件安装 RPM包管理工具介绍
  3. python与人工智能编程-Python是人工智能和机器学习的最佳编程语言,证据在此!...
  4. 自学python推荐书籍同时找哪些来实践-Python学习路上有这些论坛、网站、书籍与你同行...
  5. python系统-基于Python搭建Django后台管理系统
  6. python小项目推荐项目-推荐 10 个有趣的 Python 项目
  7. python 如何自学-如何系统地自学 Python?
  8. python从入门到精通视频教程百度云-python从入门到精通视频教程百度云资源
  9. python使用什么注释语句和运算-python 闯关之路一(语法基础)
  10. 学python需要什么基础知识-Python学习(一)基础知识