Lazy loaded image
Spring的生命周期
Words 954Read Time 3 min
2025-4-5
2025-4-23
type
status
date
slug
summary
tags
category
icon
password

1.Bean指定生命周期的创建和销毁

notion image
案例
打印信息
 

2.InitializingBean,DisposableBean

InitializingBean和DisposableBean的具体解释
InitializingBeanDisposableBean是Spring框架中用于管理Bean生命周期的两个接口‌。InitializingBean提供了一个方法afterPropertiesSet(),用于在Bean的所有属性设置完成后执行初始化操作;而DisposableBean提供了一个方法destroy(),用于在Bean销毁之前执行清理工作‌12。

InitializingBean

  • 用途‌:在Bean的所有属性设置完成后执行初始化操作。这适用于需要在Bean初始化时执行一些资源加载、数据加载或动态属性设置等操作的场景。
  • 方法‌:afterPropertiesSet(),该方法在Bean的属性设置完成后自动调用。

DisposableBean

  • 用途‌:在Bean销毁之前执行清理工作。这适用于需要在Bean销毁时释放资源、关闭连接等操作的场景。
  • 方法‌:destroy(),该方法在Bean销毁之前自动调用。
 
notion image

3.@PostConstruct和 @PreDestroy

@PostConstruct 该注解被用来修饰一个非静态的 void() 方法。被 @PostConstruct 修饰的方法会在服务器加载 Servlet 的时候运行,并且只会被服务器执行一次,并且在构造函数之后执行,init() 方法之前执行。
@PreDestroy 该注解被用来修饰一个非静态的 void() 方法。被 @PreDestroy 修饰的方法会在服务器卸载 Servlet 的时候运行,并且只会被服务器执行一次。
notion image

4.BeanPostProcessor

前面几个相当于一个监听,而BeanPostProcessor可以去修改bean
notion image

5.bean的生命周期总结

notion image
notion image

6.@Autwire是如何实现的?

1、专门有一个处理@Autwire注解的自动生成注解BeanPostProcessor 2、每个Bean创建以后,会调用Bean后处理器的后处理之前初始化方法 3、PostProcess Beforelnitialization里面就会利用反射,得到当前Bean的所有属性,利用反射,得到Bean属性上标注的所有注解,看有没有@Autwire注解 4、如果有,去容器中找到这个属性对应的组件(按类型,按名字)找到。
 
上一篇
Linux中的常用命令
下一篇
二维数组和稀疏数组相互转化

Comments
Loading...