编程模型从命令式升级为函数式

This commit is contained in:
2021-02-21 10:56:01 +08:00
parent 933b9db6fb
commit 1b8e541d68
12 changed files with 24 additions and 100 deletions

View File

@@ -1,16 +0,0 @@
package top.fjy8018.consumer.common;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class ConsumerCommonApplicationTests {
@Test
public void contextLoads() {
}
}

View File

@@ -1,18 +0,0 @@
package top.fjy8018.consumer;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.annotation.StreamListener;
import org.springframework.messaging.Message;
import top.fjy8018.consumer.common.MySink;
/**
* @author F嘉阳
* @date 2018-10-08 18:10
*/
@EnableBinding(MySink.class)
public class Consumer {
@StreamListener(MySink.INPUT)
public void receive(Message<String> message) {
System.out.println("接收到MQ消息:" + message.getPayload());
}
}

View File

@@ -2,6 +2,10 @@ package top.fjy8018.consumer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import java.util.Date;
import java.util.function.Consumer;
@SpringBootApplication
public class ConsumerApplication {
@@ -9,4 +13,9 @@ public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
@Bean
public Consumer<Date> receive() {
return System.out::println;
}
}

View File

@@ -1,8 +1,8 @@
spring:
rabbitmq:
host: 192.168.163.128
username: cms
password: cms-mq-admin
host: 192.168.133.128
username: dev-user
password: devpassword
cloud:
stream:
bindings:

View File

@@ -1,16 +0,0 @@
package top.fjy8018.consumerserver;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class ConsumerServerApplicationTests {
@Test
public void contextLoads() {
}
}

View File

@@ -5,7 +5,7 @@
<artifactId>consumer</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<packaging>pom</packaging>
<name>consumer</name>
<description>Demo project for Spring Boot</description>

View File

@@ -6,7 +6,7 @@
<groupId>top.fjy8018</groupId>
<artifactId>cloud-stream</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<packaging>pom</packaging>
<name>cloud-stream</name>
<description>Demo project for Spring Boot</description>
@@ -19,7 +19,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<version>2.4.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
@@ -27,7 +27,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.SR1</spring-cloud.version>
<spring-cloud.version>2020.0.1</spring-cloud.version>
<project.version>0.0.1-SNAPSHOT</project.version>
</properties>

View File

@@ -5,7 +5,7 @@
<artifactId>producer</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<packaging>pom</packaging>
<modules>
<module>producer-common</module>

View File

@@ -1,16 +0,0 @@
package top.fjy8018.producer.common;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class ProducerCommonApplicationTests {
@Test
public void contextLoads() {
}
}

View File

@@ -1,10 +1,7 @@
package top.fjy8018.producer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.annotation.Output;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.cloud.stream.function.StreamBridge;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import top.fjy8018.consumer.common.MySource;
@@ -16,15 +13,15 @@ import java.util.Date;
* @date 2018-10-08 17:57
*/
@RestController
@EnableBinding(MySource.class)
public class Producer {
@Autowired
private MySource channel;
private StreamBridge streamBridge;
@RequestMapping("/send")
public String send() {
channel.output().send(MessageBuilder.withPayload(new Date()).build());
streamBridge.send(MySource.OUTPUT, new Date());
return "success";
}
}

View File

@@ -1,8 +1,8 @@
spring:
rabbitmq:
host: 192.168.163.128
username: cms
password: cms-mq-admin
host: 192.168.133.128
username: dev-user
password: devpassword
cloud:
stream:
bindings:

View File

@@ -1,16 +0,0 @@
package top.fjy8018.producer.server;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class ProducerServerApplicationTests {
@Test
public void contextLoads() {
}
}