spring bean 生命周期 源码分析
时间: 2023-08-14 09:13:41 浏览: 136
深入解析Spring IoC源码:核心机制与实践应用
Spring的Bean生命周期是由Spring容器负责管理的,主要包括以下阶段:
1. 实例化:Spring容器根据配置信息或注解,创建Bean的实例。这一过程一般通过Java反射机制实现。
2. 属性注入:Spring容器将依赖注入到Bean的属性中,可以通过构造函数、Setter方法或者字段注入来实现。
3. 初始化:在Bean实例创建完成后,Spring容器会调用一系列的初始化回调方法。常见的初始化回调方法有`@PostConstruct`注解、`InitializingBean`接口的`afterPropertiesSet()`方法以及自定义的初始化方法。
4. 使用:Bean实例被使用,执行业务逻辑。
5. 销毁:当Bean不再被使用时,Spring容器会调用一系列的销毁回调方法。常见的销毁回调方法有`@PreDestroy`注解、`DisposableBean`接口的`destroy()`方法以及自定义的销毁方法。
下面是一个简化的示例代码,展示了Bean生命周期的常用方法:
```java
public class MyBean implements InitializingBean, DisposableBean {
private String name;
public MyBean() {
System.out.println("Bean实例化");
}
public void setName(String name) {
this.name = name;
}
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("初始化回调方法");
}
public void doSomething() {
System.out.println("执行业务逻辑:" + name);
}
@Override
public void destroy() throws Exception {
System.out.println("销毁回调方法");
}
}
```
此外,Spring还提供了更细粒度的扩展点,如BeanPostProcessor接口和BeanFactoryPostProcessor接口,可以在Bean的实例化和初始化过程中进行自定义处理。
以上是一个简单的概述,实际的源码分析涉及到Spring框架的很多细节,包括BeanDefinition、BeanFactory、ApplicationContext等。你可以参考Spring源码来深入了解Bean生命周期的实现细节。
阅读全文