SpringBoot 中 Bean 的生命周期
一、生命周期
1. 基本概述
在 Spring 中,bean 的生命周期可以分为以下几个阶段:
定义阶段:
- 通过
@Component
、@Service
、@Repository
、@Controller
等注解定义。 - 或通过 XML 配置、Java 配置类 (
@Configuration
) 定义。
- 通过
实例化阶段:当通过ApplicationContext获取 bean 时,如果 bean 的实例还没有创建,Spring 会调用 bean 的构造函数创建实例。通过以下方式创建Bean:
构造器实例化(常用)。
- java
// 构造器实例化 @Component public class MyBean { public MyBean() { System.out.println("1. 构造器执行 - 实例化阶段"); } }
静态工厂方法。
实例工厂方法。
属性赋值阶段:在实例化之后,Spring 会根据 bean 的配置信息为其赋值。通过以下方式进行属性赋值:
通过
@Autowired
、@Value
等注解注入依赖。- java
@Component public class MyBean { @Value("${my.property}") private String property; @Autowired private AnotherBean anotherBean; }
通过XML配置注入。
初始化阶段:在属性赋值之后,Spring 会调用 bean 的init-method方法进行初始化。
使用阶段:在初始化之后,bean 就可以被使用应用程序使用。
销毁阶段:当ApplicationContext被关闭时,Spring 会调用 bean 的destroy-method方法进行销毁。