• spring bean的生命周期与作用域


    bean的作用域

    • singleton:单例模式,Spring IoC容器中只会存在一个共享的Bean实例,无论有多少个Bean引用它,始终指向同一对象。
    • prototype:原型模式,每次通过Spring容器获取prototype定义的bean时,容器都将创建一个新的Bean实例,每个Bean实例都有自己的属性和状态。
    • request:在一次Http请求中,容器会返回该Bean的同一实例。而对不同的Http请求则会产生新的Bean,而且该bean仅在当前Http Request内有效。
    • session:在一次Http Session中,容器会返回该Bean的同一实例。而对不同的Session请求则会创建新的实例,该bean实例仅在当前Session内有效。
    • global Session:在一个全局的Http Session中,容器会返回该Bean的同一个实例,仅在使用portlet context时有效

    bean的生命周期

    • Spring对bean进行实例化,默认bean是单例;

    • Spring对bean进行依赖注入;

    • 如果bean实现了BeanNameAware接口,spring将bean的id传给setBeanName()方法;

    • 如果bean实现了BeanFactoryAware接口,spring将调用setBeanFactory方法,将BeanFactory实例传进来;

    • 如果bean实现了ApplicationContextAware接口,它的setApplicationContext()方法将被调用,将应用上下文的引用传入到bean中;

    • 如果bean实现了BeanPostProcessor接口,它的postProcessBeforeInitialization方法将被调用;

    • 如果bean实现了InitializingBean接口,spring将调用它的afterPropertiesSet接口方法,类似的如果bean使用了init-method属性声明了初始化方法,该方法也会被调用;

    • 如果bean实现了BeanPostProcessor接口,它的postProcessAfterInitialization接口方法将被调用;

    • 此时bean已经准备就绪,可以被应用程序使用了,他们将一直驻留在应用上下文中,直到该应用上下文被销毁;

    • 若bean实现了DisposableBean接口,spring将调用它的distroy()接口方法。同样的,如果bean使用了destroy-method属性声明了销毁方法,则该方法被调用

  • 相关阅读:
    WIA Property Constant Definitions
    未能导入activex控件,请确保它正确注册"的完美解决方案
    ILSpy反编译工具的使用
    WIA
    在C#中使用WIA获取扫描仪数据
    在C#中使用WIA获取扫描仪数据(利用Filter处理图片)
    VS2010中,无法嵌入互操作类型“……”,请改用适用的接口的解决方法
    怎么添加项目到SVN上面
    数学家帮你找出最佳求职者 你只要先淘汰前37%的人
    程序员7大软技能测验 你得几分?
  • 原文地址:https://www.cnblogs.com/GtShare/p/9288083.html
Copyright © 2020-2023  润新知