当前位置: 网学 > 编程文档 > 其他类别 > 正文

Spring创建Bean过程

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/08/11
注意,这个时间只能应用于使用了Spring的DispatcherServlet的web应用。 LifeCycle    1. InitializingBean/init-method   实现org.springframework.beans.factory.InitializingBean接口允许一个bean在他的所有必需的属性被BeanFactory设置后,来执行初始化的工作。   当然可以使用init-method来取代实现这个接口,以让应用不与spring产生耦合。   如果一个bean既实现了InitializingBean,又指定了init-method,则spring会先调InitializingBean的方法,在调init-method指定的方法。   2. DisposableBean/destroy-method   实现org.springframework.beans.factory.DisposableBean接口允许一个bean,可以在包含他的BeanFactory销毁的时候得到一个回调。   注意:BeanFactory对bean的管理默认是单实例的,如果bean不是单示例的,spring就不能管理他的生命周期。   3. BeanFactoryAware   对于实现了org.springframework.beans.factory.BeanFactoryAware接口的类,当它被BeanFactory创建后,它会拥有一个指向创建他的BeanFactory的引用。   4. BeanNameAware   如果一个bean实现了org.springframework.beans.factory.BeanNameAware接口,并且被部署到一个BeanFactory中,那么BeanFactory就会通过这个接口来调用bean,以便通知这个bean他被部署的id.这个回调发生在普通的 bean属性设置之后,在初始化回调之前,比如InitializingBean的afterProperteis方法(或者自定义的init- method)。   Bean的生命周期如下   1. Bean的构造   2. 调用setXXX()方法设置Bean的属性   3. 调用BeanNameAware的setBeanName();   4. 调用BeanFactoryAware的setBeanFactory()方法   5. 调用BeanPostProcessor的postProcessBeforeInitialization()方法   6. 调用InitializingBean的afterPropertiesSet()方法   7. 调用自定义的初始化方法   8. 调用BeanPostProcessor类的postProcessAfterInitialization()方法   9. 调用DisposableBean的destroy()方法   10. 调用自定义的销毁方法。    扩展Spring的Ioc框架   Spring框架的IoC组件被设计为可扩展的。通常应用开发者并不需要子类化各个BeanFactory或ApplicationContext的实现类,通过插入特定接入接口的实现,Spring的IoC容器就可以不受限制的进行扩展。   BeanPostProcessor:在创建bean之后调用   BeanFactoryPostProcessors:在创建bean之前调用   1. 如果想在spring容器完成一个bean的实例化后,再对他进行初始化之前或之后执行一些自定义的逻辑,可以插入一个或多个BeanPostProcessor的实例。   2. org.springframework.beans.factory.config.BeanPostProcessor接口包含了两个回调方法。当一个类作为容器的后置处理器(post-processor)被注册后,对于由容器创建的每个bean实例,在任一个初始化方法(例如 afterProperties和利用init-method声明的方法)调用前后后置处理器会从容器中分别获取一个回调。后置处理器可以随意对这个 bean实例执行他所期望的动作,也包括完全忽略这个回调。   3.BeanFactory和ApplicationContext对待bean后置处理器稍有不同。   ApplicationContext会自动检测任何提供给他的在配置元数据中定义实现了BeanPostProcessor接口的bean, 并把它们注册为后置处理器,然后在容器创建bean的适当时候调用它。部署一个后置处理器同部署其他的bean并没有什么区别,无需其他的动作。而另一方面,当使用BeanFactory的时候,bea
  • 上一篇资讯: spring框架实例简介
  • 下一篇资讯: 详解Spring中bean的scope
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号