Spring bean的生命周期

在 Java 中,Bean 的生命周期通常可以划分为以下几个阶段:

  1. **实例化**:在容器启动时,根据配置或者注解等方式,容器会根据类的定义(Class Definition)创建 Bean 的实例。这个阶段通常发生在容器初始化阶段。

  2. **依赖注入(Dependency Injection)**:在实例化完成后,容器会将 Bean 的依赖注入到 Bean 实例中,即将其他 Bean 或者配置的属性值注入到当前 Bean 实例中。这个阶段通常发生在实例化之后,但在 Bean 被使用之前。

  3. **初始化**:在依赖注入完成后,容器会调用 Bean 的初始化方法,通常是调用 `@PostConstruct` 注解标注的方法或者实现 InitializingBean 接口的 afterPropertiesSet() 方法。在这个阶段,Bean 可以进行一些初始化操作,例如建立数据库连接、初始化资源等。

  4. **使用**:在初始化完成后,Bean 就可以被容器或者其他组件使用了。Bean 可以在任何时候被调用或者注入到其他组件中使用。

  5. **销毁**:在容器关闭或者销毁时,容器会调用 Bean 的销毁方法,通常是调用 `@PreDestroy` 注解标注的方法或者实现 DisposableBean 接口的 destroy() 方法。在这个阶段,Bean 可以进行一些资源释放、清理操作,例如关闭数据库连接、释放资源等。

总的来说,Bean 的生命周期包括实例化、依赖注入、初始化、使用和销毁等阶段。容器负责管理 Bean 的生命周期,根据配置或者注解等方式来管理 Bean 的创建、初始化、销毁等过程,使得开发者可以专注于 Bean 的业务逻辑实现,而不必关心 Bean 的生命周期管理。

相关推荐
AI人工智能+电脑小能手5 分钟前
【大白话说Java面试题 第94题】【Mysql篇】第24题:什么是单路排序?什么是双路排序??
java·开发语言·数据库·mysql·面试·排序算法
我是一颗柠檬5 分钟前
【Java项目技术亮点】多级缓存一致性方案:Canal+MQ实现数据库与缓存的最终一致
java·数据库·spring·缓存·kafka·rocketmq
于先生吖5 分钟前
Java分账体系设计,网约车行程计费与到店线下结账一体化后端开发实战
java·开发语言
Solis程序员7 分钟前
拿捏登录安全:RS256 + 双令牌,把非法请求拦在 Redis 白名单门外
java·安全·缓存·面试·bootstrap·html
thisiszdy9 分钟前
<C++&C#> lambda表达式
java·c++·c#
咖啡八杯9 分钟前
GoF设计模式——外观模式
java·设计模式·外观模式
郝学胜-神的一滴9 分钟前
系统设计 014:缓存深度实战:如何用 Cache 优雅优化数据库读写?
java·数据库·python·缓存·oracle·php·软件构建
xuankuxiaoyao12 分钟前
阶段案例——后台管理系统
java·linux·前端
摇滚侠15 分钟前
JavaWeb 全套教程 Tomcat 53-62
java·tomcat
隔窗听雨眠24 分钟前
ORM框架选型指南:MyBatis与Hibernate的全面对比
java·开发语言·数据库