spring bean生命周期怎么记
-
Spring Bean 的生命周期可以通过以下方式记忆:
-
实例化(Instantiation):当 Spring 容器接收到 Bean 的定义时,会根据定义信息实例化 Bean 对象。这个阶段会调用构造函数来创建 Bean 实例。
-
属性赋值(Population):在实例化后,Spring 会根据配置文件或注解,将属性值注入到 Bean 实例中。可以通过构造器注入、属性注入或方法注入的方式来完成。
-
初始化(Initialization):在属性赋值完成后,会调用自定义的初始化方法,如实现 InitializingBean 接口的 afterPropertiesSet() 方法,或使用 @PostConstruct 注解的方法。这个阶段可以进行一些额外的初始化工作,如数据加载、资源分配等。
-
使用(In Use):初始化完成后,Bean 对象就可以使用了。在这个阶段,可以执行 Bean 的业务逻辑,处理请求,调用方法等等。
-
销毁(Destruction):当 Spring 容器关闭时,在容器销毁之前,会调用自定义的销毁方法,如实现 DisposableBean 接口的 destroy() 方法,或使用 @PreDestroy 注解的方法。在销毁方法中可以进行一些资源释放、清理操作。
通过以上步骤,可以参照"实例化-属性赋值-初始化-使用-销毁"这个顺序来记忆 Spring Bean 的生命周期。
1年前 -
-
记住 Spring Bean 的生命周期可以有助于我们更好地理解 Spring 框架的工作原理和优化代码。下面是一个简单的记忆方法,用于概括 Spring Bean 的生命周期。
-
定义:首先,我们需要定义一个 Spring Bean。这可以通过在配置文件(XML 或注解)中声明一个 Bean 来实现。
-
实例化:在定义之后,Spring 容器会负责实例化 Bean。这是在容器启动时完成的。
-
设置属性:一旦 Bean 被实例化,Spring 便会通过调用相应的 setter 方法为 Bean 设置属性。
-
初始化:在属性设置完成后,Spring 容器会执行任何与初始化相关的回调方法。我们可以通过实现 InitializingBean 接口或在配置文件中指定 init-method 来自定义初始化操作。
-
使用:初始化完成后,Spring Bean 就可以供其他对象使用了。我们可以通过使用自动装配或依赖注入将 Bean 注入到其他组件中。
-
销毁:当应用程序关闭时,或者当 Bean 不再需要时,Spring 容器会调用相应的回调方法来销毁 Bean。我们可以通过实现 DisposableBean 接口或在配置文件中指定 destroy-method 来自定义销毁操作。
记忆这个生命周期可以帮助我们更好地理解 Spring 框架的工作原理,并能更好地利用和优化 Spring Bean。
1年前 -
-
Spring容器管理的Bean的生命周期可以通过以下八个阶段来记忆:
-
实例化(Instantiation):当Spring容器启动时,会根据配置文件中的Bean定义,通过Java的反射机制创建Bean的实例。
-
属性填充(Population):在实例化Bean之后,Spring容器会根据配置文件中的依赖关系,将Bean所需要的属性或依赖注入到Bean中。
-
初始化前(Initialization):当Bean的属性填充完成后,Spring容器会调用Bean的初始化回调方法(如实现InitializingBean接口的afterPropertiesSet()方法,或在配置文件中通过init-method属性指定的方法)来完成Bean的初始化操作。
-
初始化(Initialization):在初始化前的回调方法执行完成后,Bean将会被标记为已初始化,此时可以对Bean进行一些自定义的初始化操作。
-
销毁前(Destruction):当Spring容器关闭或者通过手动调用容器的destroy()方法来销毁Bean时,将会调用Bean的销毁前回调方法(如实现DisposableBean接口的destroy()方法,或在配置文件中通过destroy-method属性指定的方法)进行Bean的销毁前操作。
-
销毁(Destruction):在销毁前的回调方法执行完成后,Bean将会被标记为已销毁,此时可以对Bean进行一些自定义的销毁操作。
-
单例缓存(Singleton Cache):在Bean的初始化和销毁过程中,Spring容器会默认将Bean以单例模式缓存在容器中,以便在其他地方可以重复使用。
-
垃圾回收(Garbage Collection):当Bean被标记为已销毁后,Spring容器会将该Bean的引用置为null,等待垃圾回收器对其进行回收。
通过以上八个阶段的记忆,可以帮助我们更好地理解和记忆Spring Bean的生命周期。每个阶段都有特定的方法或回调,我们可以根据需要在这些方法中添加我们的自定义逻辑。
1年前 -