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 的生命周期管理。

相关推荐
zhanghaha131420 小时前
HTML系列教程:14_HTML 表单与输入框 <form>、<input> 零基础详解
java·前端·javascript
yxlalm1 天前
Spring AI+RAG 01-项目背景与技术选型
java·人工智能·spring
程序员清风1 天前
Java 后端高并发设计:线程池、限流、熔断与降级
java·数据库·oracle
Seoyoneh1 天前
Agentic Workflow编排架构:云客服从“被动响应”迈向“主动执行”的技术实现
java·开发语言·架构
海南java第二人1 天前
对外 API 如何保证幂等性?插入数据 / 上传表格场景全方案汇总
java·幂等性
tryxr1 天前
Chat2Excel 文件服务模块上传文件功能开发
java·项目·oss·easyexcel·文件服务
Tangyuewei1 天前
Java 写 Agent:模型只是组件
java·开发语言
彧azz1 天前
Java学习语法篇:变量
java·学习
信誓旦旦的程序猿1 天前
【量化系统从零构建 #04】存储设计:选型·建库·交易日历
java·人工智能·python·股票数据api·股票数据·股票数据api接口·股票api数据接口
yurenpai(27届找实习中)1 天前
Java 10 的 var 为什么不能随便用?从订单汇总看懂类型推断与泛型陷阱
java·开发语言·java18