在Spring2.5中有三种方式可以控制bean的生命周期行为: InitializingBean
和 DisposableBean
回调接口;自定义init()
和 destroy()
方法; @PostConstruct
和@PreDestroy
annotations.
当组合不同的生命周期机制时 - 例如,类层次中使用了不同的生命周期机制 - 开发者必须注意这些机制的应用顺序,下面是初始化方法中的顺序:
-
@PostConstruct
元注释 -
InitializingBean
的afterPropertiesSet()
定义 -
自定义
init()
方法配置
析构方法调用顺序是相同的:
-
@PreDestroy
元注释 -
DisposableBean
的destroy()
定义 -
自定义
destroy()
方法
注意
如果bean存在多种的生命周期机制配置并且每种机制都配置为不同的方法名, 那所有配置的方法将会按照上面的顺利执行。然而如果配置了相同的方法名 - 例如, init()
初始化方法 - 采用多种机制配置后,只会执行一次。