1.导入依赖
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.0.2</version>
</dependency>
2.配置文件
rocketmq:
name-server: 127.0.0.1:9876
producer:
group: ${spring.application.name}
3.生产者
@Autowired
private RocketMQTemplate rocketMQTemplate;
/**
* 申请加入企业请求发送
*
* @param userJoinCompanyDTO
*/
@Transactional
public void applyJoinCompany(UserJoinCompanyDTO userJoinCompanyDTO) {
....省略代码
log.info("{},申请加入企业。{}", userJoinCompanyDTO.getUsername(), notifyMessage.toString());
rocketMQTemplate.convertAndSend(USER_TOPIC_NAME + ":" + USER_APPLY_TAGS, notifyMessage);
}
3.消费者 需要在配置文件中添加nameserver 导入启动依赖
package com.itheima.notify.listener;
import com.itheima.common.constants.RocketMQConstants;
import com.itheima.notify.dto.NotifyMessage;
import com.itheima.notify.service.NotifyMessageService;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import static com.itheima.common.constants.RocketMQConstants.CONSUMER.NOTIFY_MSG_CONSUMER;
/**
* 推送消息监听器:当监听到话题对应队列中有消息,获取到消息后将消息推送给指定手机设备
* @author: itheima
* @create: 2021-11-05 10:16
*/
@Component
@RocketMQMessageListener(
consumerGroup = NOTIFY_MSG_CONSUMER,
topic = RocketMQConstants.TOPIC.PUSH_TOPIC_NAME, //消息一级分类
selectorExpression = "*" //消息二级分类
)
public class NotifyMsgListener implements RocketMQListener<NotifyMessage> {
@Autowired
private NotifyMessageService notifyMessageService;
/**
* 1.处理接收到的推送消息
* @param message
*/
@Override
public void onMessage(NotifyMessage message) {
notifyMessageService.sendPushMsgAndStore(message);
}
}