spring - Spring - 当一个 Destination JndiObjectFactoryBean 被缓存时,它是否保持与 JMS 代理的任何连接?
问题描述
我们通过 JNDI 查找配置我们的 JMS 目的地,如下所示:
@Bean
JndiObjectFactoryBean myTopic(@Value("${topic}") String topic,
JndiTemplate jndiTemplate) {
JndiObjectFactoryBean jndiObjectFactoryBean = new JndiObjectFactoryBean();
jndiObjectFactoryBean.setJndiTemplate(jndiTemplate);
jndiObjectFactoryBean.setJndiName(topic);
return jndiObjectFactoryBean;
}
在初始化这个 bean 时,Spring 确认对象存在并缓存它以供以后使用。这个目的地的缓存是否也涉及到我们的代理创建持久连接?还是仅在实例化 CachingConnectionFactory 时才物理创建连接?
解决方案
当您createConnection()
在实例上第一次调用时创建(唯一和共享的)连接,并在调用或根据合同(继承自)所述时CachingConnectionFactory
释放:destroy()
resetConnection()
CachingConnectionFactory
SingleConnectionFactory
一个 JMS ConnectionFactory 适配器,它从所有 createConnection() 调用返回相同的 Connection,并忽略对 Connection.close() 的调用
推荐阅读
- android - 如何在 mp 图表 android 中管理标记视图偏移
- android - Android Material Date Picker 选择多个日期,例如来自同一日历的 4 个日期
- c# - 如何按字母顺序对具有相同优先级值的项目进行排序?
- python-3.x - 使用特定数据类型的函数声明
- python - numpy在python列上对基于矩阵的条件进行切片
- node.js - MongoDB (mongoose) - 查找文档并使用特定键值排序
- sql - 如何将多种字符类型拆分为不同的列?在 BigQuery 中使用 SQL
- reactjs - 反应聊天引擎加载
- jquery - 在闪亮的应用程序中使用 getJSON 并返回客户端 IP
- kubernetes - gcp kubernetes 自动驾驶模式,什么是免费层