Bean的生命周期:从创建到销毁的全过程
Spring管理的Bean具有完整的生命周期,这个生命周期从创建开始,到填充属性,初始化,使用,销毁最后到清除。下面详细解释每个阶段:
- 创建(Creation):这是Bean生命周期的开始阶段。Spring容器根据配置创建Bean的实例。
- 填充属性(Population of bean properties):在这个阶段,Spring容器将配置中定义的属性值注入到Bean中。这包括字段注入、构造器注入、Setter方法注入等。
- 初始化(Initialization):在初始化阶段,容器会调用Bean的初始化方法(
init-method
指定的方法)。这个阶段是Bean准备就绪使用的前一个阶段。 - 使用(Usage):应用程序开始使用这个Bean。Bean现在可以处理请求并执行其业务逻辑。
- 销毁(Destruction):当Bean不再需要时,容器会进行清理工作。对于单例Bean,这个阶段发生在容器关闭时。对于原型Bean,这个阶段发生在每次Bean被销毁时。
- 清除(Disposal):这是Bean生命周期的最后一个阶段。在这个阶段,容器会执行清理工作,比如调用Bean的销毁方法(
destroy-method
指定的方法)。
代码示例:
// MyBean.java
public class MyBean {
private String message;
// 依赖注入
public MyBean(String message) {
this.message = message;
}
// 初始化方法
public void init() {
System.out.println("MyBean initialized");
}
// 销毁方法
public void destroy() {
System.out.println("MyBean destroyed");
}
// Bean的使用方法
public void showMessage() {
System.out.println(message);
}
}
// AppConfig.java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
@Bean(initMethod = "init", destroyMethod = "destroy")
public MyBean myBean() {
return new MyBean("Hello, World!");
}
}
// MainApp.java
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class MainApp {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
MyBean myBean = context.getBean(MyBean.class);
myBean.showMessage(); // 输出: Hello, World!
// 当应用程序关闭时,会调用myBean的destroy方法
}
}
在这个例子中,MyBean
类具有一个初始化方法init
和一个销毁方法destroy
。
在AppConfig
类中,我们使用@Bean
注解来定义MyBean
,并指定initMethod
和destroyMethod
。
在MainApp
类中,我们使用ApplicationContext
来获取MyBean
的实例,并调用其showMessage
方法。当应用程序关闭时,MyBean
的destroy
方法会被调用。
AI时代的游轮已经到来
如果你觉得开发过程中存在重复性工作,效率不够高。
不妨看看影子的AI+编程玩法,涵盖了Java | AI+编程的学习资料,助力每一位编程人员提高效率,无论你是在校学生或是工作者,都应为未来的AIG时代做准备。
AI编程学习资料https://blog.csdn.net/yingzix688/article/details/137894050