一尘不染

如何将Spring Bean的生命周期与webapps的生命周期联系起来?

tomcat

我想创建一个具有start()stop()方法的bean
。当webapp的上下文处于活动状态时,start()在Spring的运行时启动期间被调用。取消部署或停止webapp时,将stop()调用该方法。

这是正确的吗:我start()@PostConstruct和注释stop()方法@PreDestroy

通常,在servlet世界中,我编写了一个ServletContextListener。我可以从ServletContextListener访问ApplicationContext吗?


阅读 241

收藏
2020-06-16

共1个答案

一尘不染

您可以按照您的描述注释您的start()stop()方法,也可以告诉Spring显式调用它们,例如

<bean class="MyClass" init-method="start" destroy-method="stop"/>

至于ServletContextListener,它将无法轻松访问Spring上下文。最好使用Spring自己的生命周期来进行bean初始化。

2020-06-16