springBoot整合activeMQ,并绑定生产者ip

本文介绍了如何在SpringBoot项目中整合ActiveMQ,实现生产者IP绑定和通配符订阅消息。首先,详细讲解了SpringBoot整合ActiveMQ的步骤,包括依赖、配置参数、自定义消息转化器等。接着,展示了如何通过ActiveMQ插件开发来绑定生产者IP,通过重写send方法并在BrokerFilter中处理。最后,提供了测试代码和实际运行效果,证明了IP绑定的成功。
摘要由CSDN通过智能技术生成

前言

因为物联网项目的毕业设计需要,最好使用mqtt协议通信。
有两个需求:
1.获得物联网设备的ip(生产者ip)
2.使用通配符订阅Queue(因为设备很多,而且是动态新增,主题是不确定的)

springBoot整合

1.依赖

 <dependency>
     <groupId>org.messaginghub</groupId>
     <artifactId>pooled-jms</artifactId>
 </dependency>
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-activemq</artifactId>
 </dependency>
 <!--消息队列连接池-->
 <dependency>
     <groupId>org.apache.activemq</groupId>
     <artifactId>activemq-pool</artifactId>
 </dependency>

2.配置参数

#activeMQ
spring.activemq.broker-url=tcp://localhost:61616
#true 表示使用内置的MQ,false则连接服务器
spring.activemq.in-memory=false
#true表示使用连接池;false时,每发送一条数据创建一个连接,内存销毁巨大
spring.activemq.pool.enabled=true
#连接池最大连接数
spring.activemq.pool.max-connections=10

3.配置转化器

springBoot的自动配置默认使用的转化器是在监听到消息时转化为字符串,为了拿到更多信息,我们可以自己定义转化器,转化器需要实现MessageConverter 接口,toMessage方法在发送前会执行,fromMessage方法在监听回调前会执行

@Component
public class IOTMQConverter implements MessageConverter {
   
    @Autowired
    private ObjectMapper objectMapper;
    @Override
    public Message toMessage(Object o, Session session) throws JMSException, MessageConversionException {
   
        try {
   
            String ret = objectMapper.writeValueAsString(o);
            return session.createTextMessage(ret);
        }catch (Exception e){
   
            return null;
        }
    }

    @Override
    public Object fromMessage(Message message) throws JMSException, MessageConversionException {
   
        ActiveMQTextMessage textMessage = (ActiveMQTextMessage) message;
        return textMessage;
    }
}

然后使用自己定义的convert创建一个DefaultJmsListenerContainerFactory的bean对象就可以了

@Configuration
@AutoConfigureAfter(ActiveMQAutoConfiguration.class)
public class MQTTConfig
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值