zoukankan      html  css  js  c++  java
  • spring IOC 源码解析

    http://www.cnblogs.com/ITtangtang/p/3978349.html#a1

    简要总结:

    spring IOC:spring IOC 负责生成对象并管理对象之间的依赖关系

    BeanFactory:是顶层接口,定义了spring bean容器的功能,如getBean等方法,spring提供了多种BeanFactory的实现(即容器),如ApplicationContext,XmlBeanFactory

    ApplicationContext:拓展了国际化、事件发布等功能,与BeanFactory的区别是:在应用启动时加载bean,BeanFactory是在调用getBean时加载bean的,即延迟加载

    BeanDefinition:用来描述spring bean定义

    IoC容器的初始化包括BeanDefinition的Resource定位、载入和注册这三个基本的过程,部分API如下:

    AbstractBeanDefinitionReader读取Bean定义资源

    DefaultResourceLoader的getResource方法获取要加载的资源

    BeanDefinitionParserDelegate解析Bean定义资源文件中的<Bean>元素

    当Spring IoC容器完成了Bean定义资源的定位、载入和解析注册以后,IoC容器中已经管理类Bean定义的相关数据,但是此时IoC容器还没有对所管理的Bean进行依赖注入,依赖注入在以下两种情况发生:

    (1).用户第一次通过getBean方法向IoC容索要Bean时,IoC容器触发依赖注入。

    (2).当用户在Bean定义资源中为<Bean>元素配置了lazy-init属性,即让容器在解析注册Bean定义时进行预实例化,触发依赖注入。

    BeanPostProcessor是一个接口,其初始化前的操作方法和初始化后的操作方法均委托其实现子类来实现,在Spring中,BeanPostProcessor的实现子类非常的多,分别完成不同的操作,如:AOP面向切面编程的注册通知适配器、Bean对象的数据校验、Bean继承属性/方法的合并等等

     

     

  • 相关阅读:
    has a / is a 的区别
    Linux头文件作用
    转一篇Decorator模式的讲解文章
    歌手推荐kate st. john
    拷贝构造函数和赋值构造函数声明为私有的作用
    重新认识C++中new的用法
    系统程序员成长计划容器与算法(二)(下)
    深入C++的new
    歌手推荐Cara Dillon
    浅析一道C++设计面试题
  • 原文地址:https://www.cnblogs.com/adealjason/p/6509990.html
Copyright © 2011-2022 走看看