spring boot2.0整合activeMQ,配置连接池,启动项目报错,JmsMessagingTemplate无法注入

上一篇讲到在整合activeMQ如何将queue和topic两种模式共存:spring boot2.0整合activeMQ,实现p2p和topic两者消息模式兼容共存
然后还遗留了一个问题,有读者评论因为配置文件里一句启用连接池导致项目启动报错,只要把那句配置注释掉或者改为false就可以了,这实际上是治标不治本,因毕竟流量大的时候不启用连接池效率会很低:

# 启用连接池
spring.activemq.pool.enabled=true

诚然,如果不想使用连接池,那么快速的办法的确是把这个配置直接干掉,或者改为false,其是默认就是false,但是我们来看一看启用连接池后启动项目提示JmsMessagingTemplate无法注入真正的原因是什么

开启连接池,启动项目会报错,提示JmsMessagingTemplate无法注入、

目前使用springboot最新版本是2.1+,我先直接告诉你解决方法,如果要启用连接池:

  • 使用springboot2.0+及以下版本时候,maven配置依赖是:
<dependency>
	<groupId>org.apache.activemq</groupId>
	<artifactId>activemq-pool</artifactId>
</dependency>
  • 使用springboot2.1+时候,maven配置依赖是:
<dependency>
    <groupId>org.messaginghub</groupId>
    <artifactId>pooled-jms</artifactId>
</dependency>

请按照自己使用的springboot版本更换对应的连接池依赖就可以解决问题。但为什么一样呢?我们来看看springboot的自动配置的部分源码:

  • 使用springboot2.0+及以下版本时候:
@Configuration
@ConditionalOnMissingBean(ConnectionFactory.class)
class ActiveMQConnectionFactoryConfiguration {

    @Bean
    @ConditionalOnProperty(prefix = "spring.activemq.pool", name = "enabled", havingValue = "false", matchIfMissing = true)
    public ActiveMQConnectionFactory jmsConnectionFactory(ActiveMQProperties properties,
            ObjectProvider<List<ActiveMQConnectionFactoryCustomizer>> factoryCustomizers) {
        return new ActiveMQConnectionFactoryFacto
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值