diff --git a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java index 8af3af585..24311e653 100644 --- a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java +++ b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java @@ -100,7 +100,7 @@ public interface LauncherConstant { /** * rocket */ - String APPLICATION_ROCKET_NAME = APPLICATION_NAME_PREFIX + "rocket"; + String APPLICATION_STREAM_NAME = APPLICATION_NAME_PREFIX + "stream"; /** * 动态获取nacos地址 diff --git a/blade-example/blade-mq-stream/pom.xml b/blade-example/blade-mq-stream/pom.xml new file mode 100644 index 000000000..5b1663ca5 --- /dev/null +++ b/blade-example/blade-mq-stream/pom.xml @@ -0,0 +1,37 @@ + + + + blade-example + org.springblade + 2.2.2.RELEASE + + 4.0.0 + + blade-mq-stream + ${project.artifactId} + ${bladex.project.version} + jar + + + + org.springblade + blade-core-launch + + + org.springblade + blade-core-tool + + + org.springblade + blade-core-test + test + + + org.springframework.cloud + spring-cloud-starter-stream-rabbit + + + + diff --git a/blade-example/blade-mq-stream/src/main/java/org/springblade/example/mq/stream/StreamApplication.java b/blade-example/blade-mq-stream/src/main/java/org/springblade/example/mq/stream/StreamApplication.java new file mode 100644 index 000000000..8b0ae7eef --- /dev/null +++ b/blade-example/blade-mq-stream/src/main/java/org/springblade/example/mq/stream/StreamApplication.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package org.springblade.example.mq.stream; + +import org.springblade.common.constant.LauncherConstant; +import org.springblade.core.launch.BladeApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * StreamApplication + * + * @author Chill + */ +@SpringBootApplication +public class StreamApplication { + + public static void main(String[] args) { + BladeApplication.run(LauncherConstant.APPLICATION_STREAM_NAME, StreamApplication.class, args); + } + +} diff --git a/blade-example/blade-mq-stream/src/main/java/org/springblade/example/mq/stream/handler/StreamHandler.java b/blade-example/blade-mq-stream/src/main/java/org/springblade/example/mq/stream/handler/StreamHandler.java new file mode 100644 index 000000000..99112a091 --- /dev/null +++ b/blade-example/blade-mq-stream/src/main/java/org/springblade/example/mq/stream/handler/StreamHandler.java @@ -0,0 +1,25 @@ +package org.springblade.example.mq.stream.handler; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.cloud.stream.annotation.EnableBinding; +import org.springframework.cloud.stream.annotation.StreamListener; +import org.springframework.cloud.stream.messaging.Processor; +import org.springframework.stereotype.Component; + +/** + * StreamHandler + * + * @author Chill + */ +@Slf4j +@Component +@EnableBinding(Processor.class) +public class StreamHandler { + + @StreamListener(Processor.INPUT) + public void process(String message) { + log.info("hello : " + message); + System.out.println("hello : " + message); + } + +} diff --git a/blade-example/blade-mq-stream/src/main/resources/application.yml b/blade-example/blade-mq-stream/src/main/resources/application.yml new file mode 100644 index 000000000..2b4e1d304 --- /dev/null +++ b/blade-example/blade-mq-stream/src/main/resources/application.yml @@ -0,0 +1,26 @@ +server: + port: 8603 + +spring: + cloud: + stream: + bindings: + input: + #要和output的destination一致, 这样才能将队列和写入消息的exchange关联起来 + destination: queue.log.messages + binder: rabbit-stream + group: logMessageConsumers + output: + destination: queue.log.messages + binder: rabbit-stream + binders: + rabbit-stream: + type: rabbit + environment: + spring: + rabbitmq: + host: 127.0.0.1 + port: 5672 + username: guest + password: guest + virtual-host: / diff --git a/blade-example/blade-mq-stream/src/test/java/org/springblade/example/mq/stream/StreamTest.java b/blade-example/blade-mq-stream/src/test/java/org/springblade/example/mq/stream/StreamTest.java new file mode 100644 index 000000000..83a164f59 --- /dev/null +++ b/blade-example/blade-mq-stream/src/test/java/org/springblade/example/mq/stream/StreamTest.java @@ -0,0 +1,33 @@ +package org.springblade.example.mq.stream; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springblade.core.test.BladeBootTest; +import org.springblade.core.test.BladeSpringRunner; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.cloud.stream.messaging.Processor; +import org.springframework.messaging.support.MessageBuilder; + +/** + * StreamTest + * + * @author Chill + */ +@RunWith(BladeSpringRunner.class) +@SpringBootTest(classes = StreamApplication.class) +@BladeBootTest(appName = "blade-stream", profile = "test", enableLoader = true) +public class StreamTest { + + @Autowired + private Processor pipe; + + /** + * 测试直接模式发送 + */ + @Test + public void sendDirect() { + pipe.output().send(MessageBuilder.withPayload("message").build()); + } + +} diff --git a/blade-example/pom.xml b/blade-example/pom.xml index 0c9453626..c363ee614 100644 --- a/blade-example/pom.xml +++ b/blade-example/pom.xml @@ -21,6 +21,7 @@ blade-easypoi blade-mq-kafka blade-mq-rabbit + blade-mq-stream blade-seata-order blade-seata-storage blade-websocket