回炉重造之java基础篇:spring bean 的init-method和destroy-method

spring bean 的init-method和destroy-method

1
2
3
4
<bean id="msgSender" class="com.isesol.test.mq.MsgSenderService"
init-method="init" destroy-method="destroy">
<property name="nameServer" value="${rocketmq.namesrv.domain}"/>
</bean>

initialize是希望在类初始化时执行,而destroy方法则是希望在bean销毁时执行。

在bean初始化时执行,如果bean的scope是prototype,那么会在每一次bean初始化时都会执行,如果是singleton,那么只在第一次初始化时执行。

而scope为singleton的bean的destroy方法则是在容器关闭时执行,而scope为prototype的bean是不会执行destroy方法的,
这是spring设计使然,要特别注意。

分享到: