代码拉取完成,页面将自动刷新
spring-boot-starter-stream-rabbit
<dependency>
<groupId>com.kancy</groupId>
<artifactId>spring-boot-starter-stream-rabbit</artifactId>
<version>${version}</version>
</dependency>
#定义命名空间
stream.rabbit.project=test
#定义交换机
stream.rabbit.exchange.schedule.name=test.schedule
stream.rabbit.exchange.schedule.type=direct
#定义队列,并且绑定交换机
stream.rabbit.binding-queue.polling.name=test.schedule.polling
stream.rabbit.binding-queue.polling.exchange-name=test.schedule
stream.rabbit.binding-queue.polling.routing-key=polling
#定义队列,并且绑定交换机
stream.rabbit.binding-queue.five-seconds.name=test.schedule.five-seconds
stream.rabbit.binding-queue.five-seconds.exchange-name=test.schedule
stream.rabbit.binding-queue.five-seconds.routing-key=five-seconds
stream.rabbit.binding-queue.five-seconds.dlx-exchange-name=test.schedule
stream.rabbit.binding-queue.five-seconds.dlx-routing-key=polling
stream.rabbit.binding-queue.five-seconds.ttl=5s
#配置Rabbitmq连接信息
spring.rabbitmq.host=kancy.top
spring.rabbitmq.port=5672
spring.rabbitmq.username=root
spring.rabbitmq.password=****
spring.rabbitmq.virtual-host=/test
spring.rabbitmq.publisher-confirms=true
spring.rabbitmq.publisher-returns=true
spring.rabbitmq.template.mandatory=true
stream.rabbit:
channel:
polling:
binding-key: polling
concurrency: 2
consumer:
user-message:
message-handler: user
five-seconds:
binding-key: five-seconds
/**
* PollingChannelMessage
*
* @author kancy
* @date 2020/3/8 16:51
*/
@ChannelKey("polling")
public class PollingChannelMessage extends AbstractChannelMessage {
}
/**
* UserMessageHandler
*
* @author kancy
* @date 2020/3/8 20:22
*/
@Component
public class UserMessageHandler implements MessageHandler<User> {
private static Logger log = LoggerFactory.getLogger(UserMessageHandler.class);
/**
* 监听消息
*
* @param payload
* @throws Exception
*/
@Override
public void onMessage(User payload) {
log.info("接收信息:{}" , payload);
}
}
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {RabbitMessageChannelAutoConfiguration.class, RabbitAutoConfiguration.class, UserMessageHandler.class})
@ActiveProfiles({"test"})
public class MessageChannelServiceTests {
@Autowired
private MessageChannelService messageChannelService;
@Test
public void sendPollingChannelMessageTest(){
ChannelMessage channelMessage = new PollingChannelMessage();
channelMessage.setMessageType("user-message");
channelMessage.setPayload(new User());
messageChannelService.sendMessage(channelMessage);
}
@Test
public void sendMessageTest(){
// 手动指定channelKey
String channelKey = "five-seconds";
ChannelMessage channelMessage = new SimpleChannelMessage(channelKey);
channelMessage.setMessageType("user-message");
channelMessage.setPayload(new User());
messageChannelService.sendMessage(channelMessage);
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。