MQTT Java入门 -Spring Boot 整合 artemis

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(1040)   2024-04-17 10:45:57

Spring Boot MQTT协议

通过spring boot整合apache artemis实现Java语言MQTT协议通信,搭建MQTT服务器可以参考上一篇 MQTT Java入门-搭建MQTT服务器

Spring Boot项目创建

创建一个spring boot项目使用最新的spring boot版本
spring boot项目创建
 

添加artemis依赖

maven pom.xml添加以下依赖:

        <!--MQTT-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-artemis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-pool</artifactId>
        </dependency>

编写MQTT消息发布者

import lombok.extern.slf4j.Slf4j;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;

/**
 * 消息生产者
 */
@Slf4j
@Service
public class MessageProducerService {

    @Resource
    JmsTemplate jmsTemplate;


    /**
     * 测试 每5秒发送一个消息
     */
    @Scheduled(cron = "0/5 * * * * ?")
    public void sendMessage(){
        Map<String,String> dataMap=new HashMap<>();
        dataMap.put("Hello Artemis","MQTT");
        jmsTemplate.convertAndSend("destinationName1",dataMap);
        log.info("send message success!");
    }

}

用于发布消息到MQTT服务器

编写MQTT消息消费者

import lombok.extern.slf4j.Slf4j;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Service;

import java.util.Map;

@Slf4j
@Service
public class MessageConsumerService {


    @JmsListener(destination = "destinationName1")
    public void receiveMessage(Map<String,String> dataMap){
        try {
            //等待10秒模拟
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        log.info("Receive Message : {}",dataMap.toString());
    }

}

用于模拟接受MQTT协议消息内容

编写MQTT配置文件

登录后查阅

此处内容已经隐藏,需要登录后刷新查阅

登录/注册

在启动类注解启动调度任务

@EnableScheduling

启动项目

查看console面板可以看到消息的发送和接受日志
操作示例图-1646881010546.png

通过Apache ActiveMQ Artemis web管理也可以看到消息队列
Apache ActiveMQ Artemis

项目源码下载:项目源码点击下载(访问密码:9987)
 

地址:https://www.leftso.com/article/994.html

相关阅读

Spring Boot MQTT协议通过spring boot整合apache artemis实现Java语言MQTT协议通信,搭建MQTT服务器可以参考上一篇 MQTT Java入门-搭建MQ...
MQTT协议 Java入门教程,通过Apache ActiveMQ Artemis搭建MQTT服务器。首先下载Apache ActiveMQ Artemis,目前Apache ActiveMQ ...
引言    通过之前spring boot mybatis 整合的讲解: spring boot mybaties整合  (spring boot mybaties 整合 基于Java注解方式写...
Java编程中Spring Boot整合RabbitMQ实现消息中间件RabbitMQ的使用
前言    本教程主要讲解spring boot如何整合 spring data elasticsearch 实现elasticsearch检索引擎的整合使用
Spring Boot 2.0 Redis整合,通过spring boot 2.0整合Redis作为spring缓存框架的实现。
spring boot 2.0 security 5.0 整合,实现自定义表单登录。spring boot 2.0框架使用。
spring boot 入门之整合spring session实现session共享。一直以来Java编程中web项目中的session共享问题都是一个很难解决的问题。接下来将讲解通过sprin...
Java编程之Spring Boot通过JMSTemplate 整合ActiveMQ
spring boot mybatis 整合使用讲解介绍,spring boot与MyBatis的使用讲解介绍。spring boot mybatis xml mapper方式的入门和通过一个简...