【发布时间】:2015-11-21 16:08:18
【问题描述】:
我们在基于 Spring 的 Web 应用程序中使用 Spring AMQP 连接到 RabbitMQ。
当我们在应用程序上下文中将侦听器容器声明为 bean(使用 rabbit:listener-container)时,它们的生命周期由 Spring 管理。
如果我们在@PostConstruct 方法内的组件中声明一个侦听器容器,或者我们创建一个具有类org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer 的bean 作为原型作用域bean,那么我们必须管理生命周期,即启动和停止侦听器-自己装容器。
我的问题是,如果我们在 @PostConstruct 方法中声明新的队列、绑定和侦听器容器,只需在相应的 @PreDestroy 方法中调用 listener.stop/shutdown/destroy 方法就足以正常关闭?否则我需要做什么?
注意:我猜我不需要为 @PostContruct 中创建的新队列和绑定做任何事情,但如果您也为我确认这一点,我将非常高兴。
【问题讨论】:
标签: spring spring-amqp spring-rabbit