春天包含一个名为CachingConnectionFactory类。 在这个类的一个变量是一个名为cacheProducers布尔值。 默认情况下,这个值是true。 此变量可以被设置为假使用setCacheProducers(假)。
什么时候是合适的将其设置为假? 什么是设置为false的优点和缺点?
背景:我们正在对我们的应用程序的性能测试和使用Spring JMS发布数千封邮件的第二至JMS。 剖析我们的代码,我们看到session.createProducer呼叫耗费我们的总处理时间超过60%,工厂当前设置为setCacheProducers(假)。 什么后果将该值设置为true?
其设置为false
非常失败的全部目的。 你留下了只是缓存的连接。
如果您要管理自己的生命周期生产(EE使用时,您可能需要将其设置为false execute()
与SessionCallback
)。 但是当你使用的是更高层次的抽象( send()
, convertAndSend()
等),你一般会希望它是真的。
这是Jmstemplate
。 所以一般不建议使用CachingConnectionFactory
与DefaultMessageListenerContainer
。
文章来源: When is it appropriate to cacheConsumers when using Spring CachingConnectionFactory?