1.(建议)JSR-250提供了标准的、与JavaEE容器和Spring容器无关的生命周期回调函数
@PostConstruct,构造函数之后调用
@PreDestroy,注销之前调用
2.(不建议)
Spring框架提供的org.springframework.beans.factory.InitializingBean接口
afterPropertiesSet()
Spring框架提供的org.springframework.beans.factory.DisposableBean接口
destroy()
3.(建议)
1) XML配置文件中定义一个Bean时,使用 init-method属性指定构造后的方法
XML配置文件中定义所有Beans时,使用 default-init-method属性指定构造后的方法
2) XML配置文件中定义一个Bean时,使用 destroy-method属性指定注销前的方法
XML配置文件中定义所有Beans时,使用 default-destroy-method属性指定注销前的方法
@PostConstruct,构造函数之后调用
@PreDestroy,注销之前调用
2.(不建议)
Spring框架提供的org.springframework.beans.factory.InitializingBean接口
afterPropertiesSet()
Spring框架提供的org.springframework.beans.factory.DisposableBean接口
destroy()
3.(建议)
1) XML配置文件中定义一个Bean时,使用 init-method属性指定构造后的方法
<bean id="exampleInitBean" class="examples.ExampleBean" init-method="init"/>
public class ExampleBean {
public void init() {
// do some initialization work
}
}
XML配置文件中定义所有Beans时,使用 default-init-method属性指定构造后的方法
<beans default-init-method="init">...</beans>
2) XML配置文件中定义一个Bean时,使用 destroy-method属性指定注销前的方法
<bean id="exampleInitBean" class="examples.ExampleBean" destroy-method="cleanup"/>
public class ExampleBean {
public void cleanup() {
// do some destruction work (like releasing pooled connections)
}
}
XML配置文件中定义所有Beans时,使用 default-destroy-method属性指定注销前的方法
<beans default-destroy-method="init">...</beans>
补充:Spring容器的应用上下文的生命周期管理方法
org.springframework.context.Lifecycle接口
start()
stop()
isRunning()