spring中IOC设计与实现
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设计与实现相关推荐
- Spring中IOC和AOP的详细解释(转)
原文链接:Spring中IOC和AOP的详细解释 我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂. 主要用到的设计模式有工厂 ...
- spring中ioc是什么
摘自:https://www.jb51.net/article/123900.htm IoC是一种让服务消费者不直接依赖于服务提供者的组件设计方式,是一种减少类与类之间依赖的设计原则.下面通过本文给大 ...
- spring中IoC和AOP的实现
6.2 spring IoC IoC容器是Spring的核心.容器从配置文件中读取需要创建哪些对象,并在创建后按照要求把它们进行装配,通过这样的方法达到业务代码解耦的目的.不仅如此,spring还负责 ...
- spring中IOC是什么意思 个人觉得解释的非常有意思
用一个直观的列子来告诉大家:在spring中什么是ioc IoC就是Inversion of Control,控制反转.在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控 ...
- Spring中IOC和AOP的详细解释
我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂. 主要用到的设计模式有工厂模式和代理模式. IOC就是典型的工厂模式,通过s ...
- Spring中IoC的入门实例
Spring的模块化是很强的,各个功能模块都是独立的,我们可以选择的使用.这一章先从Spring的IoC开始.所谓IoC就是一个用XML来定义生成对象的模式,我们看看如果来使用的. 数据模型 1.如下 ...
- Spring中IoC的入门实例[转]
Spring的模块化是很强的,各个功能模块都是独立的,我们可以选择的使用.这一章先从Spring的IoC开始.所谓IoC就是一个用XML来定义生成对象的模式,我们看看如果来使用的. 数据模型 1.如下 ...
- Spring中IoC两种接口和两种依赖注入方式的比较
spring是一个开源框架,是为了解决企业应用程序开发的复杂性而创建的,为J2EE应用程序开发提供集成的框架.简单来说,spring是一个轻量级的控制反转IOC和面向切面AOP的容器框架.spring ...
- 谈谈自己对Spring中IOC和AOP的理解
Spring框架的核心思想主要是IOC和AOP的思想 IOC IOC概念 Spring中的IOC AOP AOP概念 百度百科的解释 个人理解 AOP思想 IOC IOC概念 所谓IOC即 Inver ...
最新文章
- document.all.item的解释和一个表单向多页面提交
- Office快捷键大全之三(Access快捷键下篇)
- id vue2路由传参_Vue2.0中 $route 和 $router 的区别
- 什么网了解c语言,什么是c语言?
- 【java笔记】大数操作(BigIntegerBigDecimal)
- 多线程编程、线程同步|安全和线程通信
- 解数独(Python)
- DevExpress 表中数据导出
- 操作系统 第二部分 进程管理(一)
- 移远EC20模组网口SGMII通讯调试以及FC20wifi通讯调试
- postman安装与使用
- Android自定义控件 芝麻信用分雷达图
- win7 AnkhSVN 安装报错
- Linux添加WIFI驱动
- MATLAB批量修改图片名称
- java linkedblockingqueue_Java LinkedBlockingQueue take()用法及代码示例
- 【自动化】车间自动化十大必备装置!
- Gym - 100543G Virus synthesis Gym
- 什么是高可用性_什么是高可用性| 第2部分
- 51单片机寄存器详解
热门文章
- [iOS翻译]《The Swift Programming Language》系列:Welcome to Swift-01
- Redhat下的软件安装 RPM包管理工具介绍
- python与人工智能编程-Python是人工智能和机器学习的最佳编程语言,证据在此!...
- 自学python推荐书籍同时找哪些来实践-Python学习路上有这些论坛、网站、书籍与你同行...
- python系统-基于Python搭建Django后台管理系统
- python小项目推荐项目-推荐 10 个有趣的 Python 项目
- python 如何自学-如何系统地自学 Python?
- python从入门到精通视频教程百度云-python从入门到精通视频教程百度云资源
- python使用什么注释语句和运算-python 闯关之路一(语法基础)
- 学python需要什么基础知识-Python学习(一)基础知识