【Spring Boot】Spring原理:Bean的作用域和生命周期
@Component
public class MyBean {
private static int staticState;
private int instanceState;
public MyBean() {
// 初始化非静态状态
this.instanceState = 0;
}
// 静态工厂方法,创建Bean
@Bean
public static MyBeanFactoryBean createMyBean() {
return new MyBeanFactoryBean();
}
// Bean的生命周期方法
@PostConstruct
public void init() {
// 执行初始化逻辑
}
@PreDestroy
public void cleanup() {
// 执行销毁逻辑
}
// ... 其他方法和状态
}
// 使用@Bean注解的工厂方法,创建并返回MyBean的实例
public class MyBeanFactoryBean implements FactoryBean<MyBean> {
@Override
public MyBean getObject() throws Exception {
return new MyBean();
}
@Override
public Class<?> getObjectType() {
return MyBean.class;
}
// ... 其他方法
}
这个代码示例展示了如何在Spring Boot应用中定义一个普通的Bean和一个使用FactoryBean的Bean。MyBean
类包含了一个静态变量和一个实例变量,并且提供了@PostConstruct
和@PreDestroy
注解的方法来处理Bean的初始化和销毁逻辑。MyBeanFactoryBean
类实现了FactoryBean
接口,用于创建MyBean
的实例。这些示例展示了Spring框架中Bean的基本使用和管理。
评论已关闭