# 公共消息服务 **Repository Path**: corn-cob/public-message-service ## Basic Information - **Project Name**: 公共消息服务 - **Description**: 公共消息服务 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-03-25 - **Last Updated**: 2021-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 公共消息服务 ### 介绍 基于SpringCloud Stream 使其支持注解方式配置主题和消息内容。通过AOP的代理的方式使其可以通过注解方式来减少消息队列生产者生产消息的相关代码。 ### 具体使用 #### 生产者配置 ##### 添加依赖 ``` com.omuao.cloud.stabilization public-message-service ``` ##### 使用EnableMessageQueueApplication 使用@EnableMessageQueueApplication注解去将应用标记为消息队列应用。 ``` /** * 公共消息服务 * * @author yumi */ @EnableMessageQueueApplication public class PublicMessageApplication { public static void main(String[] args) { SpringApplication.run(PublicMessageApplication.class, args); } } ``` ##### 创建topic和子tag ``` package com.omuao.cloud.stabilization.common.message.manager; import com.omuao.cloud.stabilization.common.message.annotation.MessageQueue; import com.omuao.cloud.stabilization.common.message.annotation.MessageQueueInsert; /** * 消息队列管理器 * * @author yumi */ @MessageQueue("demo") //这里的demo是指tag public class MessageQueueManager { /** * 发送消息 * * @param message 消息 * @return */ @MessageQueueInsert("xx") //这里的xx 是指 xx-insert tag的前缀 public boolean send(String message) { //这里的参数 message 最终会以 application/json格式进行封装传递出去,支持多个参数,或者复杂参数 return false; } } ``` ##### 调用 ``` package com.omuao.cloud.stabilization.common.message.service.impl; import com.omuao.cloud.stabilization.common.message.manager.MessageQueueManager; import com.omuao.cloud.stabilization.common.message.service.DemoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * 示例服务 * * @author yumi */ @Service public class DemoServiceImpl implements DemoService { @Autowired MessageQueueManager messageQueueManager; @Override public void demo() { boolean sendFlag = messageQueueManager.send("hello world"); //你可以通过这个sendFlag 获取到当前的一个发送状态,以便后续业务开发 System.out.println("发送状态:" + sendFlag); } } ``` #### 消费者配置 ##### 通过Stream方式调用 ``` @StreamListener(MessageProcessor.INPUT) public void onMessage(String message) { System.out.println(message); } ```