在工作中你不得不承认有千奇百怪的需求,比如今天让你添加这,而明天让你删除那的。我对spring中bean生命周期的理解还是源于两年前公司做的一个外包项目。那是真还是迷迷糊糊不懂。。。真是不懂spring中的大爱,大智慧。。,在此啪啪暗自打脸。
@PostConstruct和@PreDestroy
Spring 允许在 Bean 在初始化完成后以及 Bean 销毁前执行特定的操作,您既可以通过实现 InitializingBean/DisposableBean 接口来定制初始化之后 / 销毁之前的操作方法,也可以通过 <bean> 元素的 init-method/destroy-method 属性指定初始化之后 / 销毁之前调用的操作方法。
but,,重点来了,,,
不管是通过实现 InitializingBean
/DisposableBean
接口,还是通过 <bean> 元素的init-method/destroy-method
属性进行配置,都只能为 Bean 指定一个初始化 / 销毁的方法。但是使用@PostConstruct
和 @PreDestroy
注释却可以指定多个初始化 / 销毁方法,那些被标注 @PostConstruct
或 @PreDestroy
注释的方法都会在初始化 / 销毁时被执行。