首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Bean的生命周期

生命周期图解 下图描述了BeanFactory中Bean生命周期的完整过程: ?...Bean 的生命周期从Spring容器着手实例化Bean开始,直到最终销毁Bean,这当中经过了许多关键点,每个关键点都涉及特定方法的调用,可以将这些方法大致划分为3类: Bean自身的方法:如调用Bean...下面我们通过一个具体的实例以更好的理解Bean生命周期的各个步骤....窥探Bean生命周期的实例 实现各种生命周期控制访问的Car package com.merryyou.bean; import org.springframework.beans.BeansException...ApplicationContext中Bean的生命周期 Bean在应用上下文中的生命周期和在BeanFactory中生命周期类似,不同是,如果Bean实现了org.springframework.context.ApplicationContext

57710
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    bean的生命周期

    一、流程图 二、各环节介绍 spring管理bean,通过反射找到构造方法,实例化bean对象 Bean实例化后对将Bean的引入和值注入到Bean的属性中 BeanNameAware.setBeanName...(),获取设置bean的名称 BeanFactoryAware.setBeanFactory(),获取BeanFactory容器实例即获取bean ApplicationContextAware.setApplicationContext...(),获取bean所在应用上下文引用 BeanPostProcessor.postProcessBeforeInitialization(),前置处理器,获取bean,为bean填充属性 InitializingBean.afterPropertiesSet...System.out.println("自定义销毁方法"); } } public class MyBeanPostProcessor implements BeanPostProcessor { // 容器加载的时候会加载一些其他的...bean,会调用初始化前和初始化后方法 public Object postProcessBeforeInitialization(Object bean, String beanName) throws

    8400

    Bean 的生命周期

    但是在 Spring 通过 IOC 容器进行管理之后,Bean 的生命周期就变得更加复杂了,下图展示了 Bean 的构造过程 image.png Bean 的生命周期 我们对上图的每个步骤进行文字说明...接口方法的分类 Bean 的完整生命周期经历了各种方法的调用,这些方法可以分类一下三类 Bean自身的方法: 这个包括了 Bean 本身调用的方法和通过配置文件中 的 init-method 和 destroy-method...指定的方法 Bean 级生命周期的方法 这个包括了 BeanNameAware、BeanFactoryAware、InitializingBean 和 DiposableBean 这些接口的方法 容器级生命周期的方法...工厂后处理器也是容器级的。在应用上下文装配配置文件之后立即调用。 DEMO 举例 我们用一个简单的 Spring Bean 来演示一下 Spring Bean 的生命周期。...首先是一个简单的 Spring Bean,调用 Bean 自身的方法和 Bean 级生命周期接口方法,为了方便演示,它实现了 BeanNameAware、BeanFactoryAware、InitializingBean

    21320

    解释spring框架中bean的生命周期_Spring bean的生命周期

    大家好,又见面了,我是你们的朋友全栈君。 该篇博客就来了解IoC容器下Bean的一生吧,也可以理解为bean的生命周期。...),能体现其生命周期的Bean */ public class Student implements BeanNameAware { private String name; //无参构造方法...的一生其实已经算是对bean生命周期很完整的解释了,然而bean的后置处理器,是为了对bean的一个增强 用法 分别在Bean的初始化前后对Bean对象提供自己的实例化逻辑 - 实现BeanPostProcessor...),能体现其生命周期的Bean */ public class Student implements BeanNameAware { private String name; //无参构造方法...name偷偷修改了,最后输出的就是偷偷修改之后的值 好了以上就是bean的一生,在控制台下将bean的一生映射出来,对理解bean的一生(生命周期)更加直观咯 ---- 参考 《Spring揭秘》

    37420

    Spring bean的生命周期

    http://www.cnblogs.com/V1haoge/p/6106456.html Spring bean生命周期 Spring中Bean的管理是其最基本的功能,根据下面的图来了解Spring...中Bean的生命周期: ?...Bean,那么在该容器中实例化任何其他Bean之前可以回调该Bean中的postPrcessorBeanFactory()方法来对Bean的配置元数据进行更改,比如从XML配置文件中获取到的配置信息。...(2)Bean的实例化:Bean的实例化是使用反射实现的。 (3)Bean属性注入:Bean实例化完成后,利用反射技术实现属性及依赖Bean的注入。...(9)自定义的inti-method指定的方法:如果配置文件中使用init-method属性指定了初始化方法,那么Bean在实例化完成后将会调用该属性指定的初始化方法进行Bean的初始化。

    50320

    Spring Bean的生命周期

    Spring 容器可以管理 singleton 作用域 Bean 的生命周期,在此作用域下,Spring 能够精确地知道该 Bean 何时被创建,何时初始化完成,以及何时被销毁。...Spring 只帮我们管理单例模式 Bean 的完整生命周期,对于 prototype 的 bean ,Spring 在创建好交给使用者之后则不会再管理后续的生命周期。...对于 prototype 作用域的 Bean,Spring 只负责创建,当容器创建了 Bean 的实例后,Bean 的实例就交给客户端代码管理,Spring 容器将不再跟踪其生命周期。...每次客户端请求 prototype 作用域的 Bean 时,Spring 容器都会创建一个新的实例,并且不会管那些被配置成 prototype 作用域的 Bean 的生命周期。...当一个 Bean 被加载到 Spring 容器时,它就具有了生命,而 Spring 容器在保证一个 Bean 能够使用之前,会进行很多工作。如图所示:

    45520

    Spring | Bean 的生命周期

    作者:sunshujie1990 www.jianshu.com/p/1dec08d290c1 Spring Bean的生命周期是Spring面试热点问题。...这个问题即考察对Spring的微观了解,又考察对Spring的宏观认识,想要答好并不容易!本文希望能够从源码角度入手,帮助面试者彻底搞定Spring Bean的生命周期。 只有四个!...是的,Spring Bean的生命周期只有这四个阶段。把这四个阶段和每个阶段对应的扩展点糅合在一起虽然没有问题,但是这样非常凌乱,难以记忆。...其实记不住的根本原因还是不够了解,这里通过源码+分类的方式帮大家记忆。 第一大类:影响多个Bean的接口 实现了这些接口的Bean会切入到多个Bean的生命周期中。...总结 Spring Bean的生命周期分为四个阶段和多个扩展点。扩展点又可以分为影响多个Bean和影响单个Bean。

    1.8K60

    Spring Bean 生命周期

    Spring Bean 生命周期 前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: ?...再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模式 Bean 的完整生命周期,对于 prototype 的 bean ,Spring 在创建好交给使用者之后则不会再管理后续的生命周期...注解方式 在 bean 初始化时会经历几个阶段,首先可以使用注解 @PostConstruct, @PreDestroy 来在 bean 的创建和销毁阶段进行调用: @Component public...="destroy"> bean> 来达到同样的效果。...BeanPostProcessor 增强处理器 实现 BeanPostProcessor 接口,Spring 中所有 bean 在做初始化时都会调用该接口中的两个方法,可以用于对一些特殊的 bean 进行处理

    50810

    简单介绍一下spring bean的生命周期_Spring bean的生命周期

    一、简介 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,从BeanFactory或ApplicationContext取得的实例为Singleton,也就是预设为每一个...Bean的别名只能维持一个实例,而不是每次都产生一个新的对象使用Singleton模式产生单一实例,在spring中,singleton属性默认是true,只有设定为false,则每次指定别名取得的Bean...时都会产生一个新的实例,Spring只帮我们管理单例模式Bean的完整生命周期,对于prototype的bean,Spring在创建好交给使用者之后则不会再管理后续的生命周期。...二、图例 生命周期图如下: 也可以概括为: 三、图例说明 1、实例化一个Bean 2、按照Spring上下文对实例化的Bean进行配置,也就是IOC注入...3、如果这个Bean已经实现了BeanNameAware接口,会调用它实现的setBeanName(String)方法,传递的参数就是Spring配置文件中Bean的id值 4、如果这个Bean已经实现了

    25420

    Spring中Bean的生命周期

    Spring中Bean的生命周期 博主 默语带您 Go to New World....使用Spring框架主要工作就是面对Bean开发BOP,作为IOC容器提供的Bean都是已经被框架处理好的Bean,平时使用只要DI即可,然而想灵活使用一个Bean则少不了对Bean的生命周期有一个掌握...Spring Framework 作为Java Bean的管理者,对Bean对象的进行了详细的分解来为满足用户的个性化需求。...整体而言Bean的生命周期可以分为四步 实例化 属性设置 初始化 销毁 在每一步,Spring都提供的接口以方便对不同步骤的Bean进行处理,常见的接口有:InstantiationAwareBeanPostProcessor...Object postProcessAfterInitialization(Object bean, String beanName) Bean初始化完成之后调用,之后的Bean就是开发者真正调用的完整的

    9910

    Spring 中 Bean 的生命周期

    Spring 中 Bean 的生命周期 所谓 Bean 的生命周期,就是一个 Bean 从创建到销毁,所经历的各种方法调用。大致包含下面几个方法(不是全部) Bean 的实例化,调用了构造方法。...生命周期之方法调用 后置处理器 BeanPostProcessor 接口 @PostConstruct 和@PreDestroy InitializingBean.afterPropertiesSet(...而其他如@PostConstruct 注解等的实现方式中,仅作用在当前的 bean 上。因此 BeanPostProcessor 是全局性的,对容器中所有的对象都有效。...@PostConstruct 和@PreDestroy 必须标注在无参数无返回值的方法上,当容器在加载 bean 时调用@PostConstruct 标注的方法,当容器释放 bean 对象的时候,调用@...的生命周期大致包括了这么多点,其实这么多点真正使用的并不多,并且使用场景都属于框架级别的,但是对于了解 Spring 容器的对象管理很有好处。

    4.4K31

    Spring Bean 生命周期

    在网上已经有跟多Bean的生命周期的博客,但是很多都是基于比较老的版本了,最近把整个流程化成了一个流程图。待会儿使用流程图,说明以及代码的形式来说明整个声明周期的流程。...一、获取Bean 第一阶段获取Bean 这里的流程图的入口在 AbstractBeanFactory类的 doGetBean方法,这里可以配合前面的 getBean方法分析文章进行阅读。...主要流程就是 1、先处理Bean 的名称,因为如果以“&”开头的Bean名称表示获取的是对应的FactoryBean对象; 2、从缓存中获取单例Bean,有则进一步判断这个Bean是不是在创建中,如果是的就等待创建完毕...2、将按照类型跟按照名称注入的Bean分开,如果注入的Bean还没有实例化的这里会实例化,然后放到 PropertyValues对象中。...到此创建Bean 的流程就没了,剩下的就是容器销毁的时候的了 三、destory方法跟销毁Bean Bean在创建完毕之后会检查用户是否指定了 destroyMethodName以及是否实现了 DestructionAwareBeanPostProcessor

    24110
    领券