From b5f25e5725f537f52dc82dbc83186015df2e66e1 Mon Sep 17 00:00:00 2001 From: chengshiping Date: Thu, 21 Apr 2022 15:28:05 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90WEB=E7=AF=87=E3=80=91Spring=20Boot=20?= =?UTF-8?q?=E6=95=B4=E5=90=88=20Webflux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- mingyue-springboot-webflux/pom.xml | 68 +++++++++++++++++++ .../MingYueSpringbootWebfluxApplication.java | 12 ++++ .../controller/MingYueUserController.java | 24 +++++++ .../mingyue/webflux/model/MingYueUser.java | 18 +++++ .../webflux/service/MingYueUserService.java | 28 ++++++++ .../src/main/resources/application.yml | 2 + .../src/main/resources/banner.txt | 17 +++++ pom.xml | 1 + 9 files changed, 171 insertions(+), 1 deletion(-) create mode 100644 mingyue-springboot-webflux/pom.xml create mode 100644 mingyue-springboot-webflux/src/main/java/com/csp/mingyue/webflux/MingYueSpringbootWebfluxApplication.java create mode 100644 mingyue-springboot-webflux/src/main/java/com/csp/mingyue/webflux/controller/MingYueUserController.java create mode 100644 mingyue-springboot-webflux/src/main/java/com/csp/mingyue/webflux/model/MingYueUser.java create mode 100644 mingyue-springboot-webflux/src/main/java/com/csp/mingyue/webflux/service/MingYueUserService.java create mode 100644 mingyue-springboot-webflux/src/main/resources/application.yml create mode 100644 mingyue-springboot-webflux/src/main/resources/banner.txt diff --git a/README.md b/README.md index c06e558..85d8b7d 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ ## WEB篇 -- 【WEB篇】Spring Boot 利用 Webflux 提升吞吐量和伸缩性; +- [【WEB篇】Spring Boot 整合 Webflux](https://blog.csdn.net/csp732171109/article/details/124322939) `mingyue-springboot-webflux` - 【WEB篇】Spring Boot 整合 WebSocket 推送与接受消息; ## 日志篇 diff --git a/mingyue-springboot-webflux/pom.xml b/mingyue-springboot-webflux/pom.xml new file mode 100644 index 0000000..2d59557 --- /dev/null +++ b/mingyue-springboot-webflux/pom.xml @@ -0,0 +1,68 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.6.6 + + + + com.csp + mingyue-springboot-webflux + 1.0 + mingyue-springboot-webflux + mingyue-springboot-webflux + + 1.8 + + + + org.springframework.boot + spring-boot-starter-webflux + + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + + cn.hutool + hutool-all + 5.7.22 + + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + + + + + + diff --git a/mingyue-springboot-webflux/src/main/java/com/csp/mingyue/webflux/MingYueSpringbootWebfluxApplication.java b/mingyue-springboot-webflux/src/main/java/com/csp/mingyue/webflux/MingYueSpringbootWebfluxApplication.java new file mode 100644 index 0000000..cfb4a48 --- /dev/null +++ b/mingyue-springboot-webflux/src/main/java/com/csp/mingyue/webflux/MingYueSpringbootWebfluxApplication.java @@ -0,0 +1,12 @@ +package com.csp.mingyue.webflux; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class MingYueSpringbootWebfluxApplication { + + public static void main(String[] args) { + SpringApplication.run(MingYueSpringbootWebfluxApplication.class, args); + } +} diff --git a/mingyue-springboot-webflux/src/main/java/com/csp/mingyue/webflux/controller/MingYueUserController.java b/mingyue-springboot-webflux/src/main/java/com/csp/mingyue/webflux/controller/MingYueUserController.java new file mode 100644 index 0000000..326fe5e --- /dev/null +++ b/mingyue-springboot-webflux/src/main/java/com/csp/mingyue/webflux/controller/MingYueUserController.java @@ -0,0 +1,24 @@ +package com.csp.mingyue.webflux.controller; + +import com.csp.mingyue.webflux.model.MingYueUser; +import com.csp.mingyue.webflux.service.MingYueUserService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import reactor.core.publisher.Mono; + +/** @author Strive */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/user") +public class MingYueUserController { + + private final MingYueUserService mingYueUserService; + + @GetMapping("/{userId}") + public Mono queryUserById(@PathVariable Long userId) { + return Mono.just(mingYueUserService.queryUserById(userId)); + } +} diff --git a/mingyue-springboot-webflux/src/main/java/com/csp/mingyue/webflux/model/MingYueUser.java b/mingyue-springboot-webflux/src/main/java/com/csp/mingyue/webflux/model/MingYueUser.java new file mode 100644 index 0000000..c809948 --- /dev/null +++ b/mingyue-springboot-webflux/src/main/java/com/csp/mingyue/webflux/model/MingYueUser.java @@ -0,0 +1,18 @@ +package com.csp.mingyue.webflux.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +/** @author Strive */ +@Data +@ToString +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MingYueUser { + private Long userId; + private String username; +} diff --git a/mingyue-springboot-webflux/src/main/java/com/csp/mingyue/webflux/service/MingYueUserService.java b/mingyue-springboot-webflux/src/main/java/com/csp/mingyue/webflux/service/MingYueUserService.java new file mode 100644 index 0000000..25bb8dd --- /dev/null +++ b/mingyue-springboot-webflux/src/main/java/com/csp/mingyue/webflux/service/MingYueUserService.java @@ -0,0 +1,28 @@ +package com.csp.mingyue.webflux.service; + +import cn.hutool.core.map.MapUtil; +import com.csp.mingyue.webflux.model.MingYueUser; +import java.util.Map; +import org.springframework.stereotype.Service; + +/** @author Strive */ +@Service +public class MingYueUserService { + + /** 模拟用户存储 */ + private static final Map USER_MAP = MapUtil.newHashMap(); + + static { + USER_MAP.put(1L, MingYueUser.builder().userId(1L).username("mingyue").build()); + } + + /** + * 根据用户ID查询用户信息 + * + * @param userId 用户ID + * @return 用户信息 + */ + public MingYueUser queryUserById(Long userId) { + return USER_MAP.get(userId); + } +} diff --git a/mingyue-springboot-webflux/src/main/resources/application.yml b/mingyue-springboot-webflux/src/main/resources/application.yml new file mode 100644 index 0000000..2db562d --- /dev/null +++ b/mingyue-springboot-webflux/src/main/resources/application.yml @@ -0,0 +1,2 @@ +app: + author: Strive \ No newline at end of file diff --git a/mingyue-springboot-webflux/src/main/resources/banner.txt b/mingyue-springboot-webflux/src/main/resources/banner.txt new file mode 100644 index 0000000..a39ae07 --- /dev/null +++ b/mingyue-springboot-webflux/src/main/resources/banner.txt @@ -0,0 +1,17 @@ + To My Love! + -=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=- + + __ __ __ __ + .*. /~ .~\ /~ ~\ /~ .~\ /~ ~\ + *** ' `\/' * ' `\/' * + V ( .*)( . *) +/\|/\ \ Ming . *./ \ Yue . *./ + | `\ . . .*/' `\ . . .*/' .*. + | `\ * .*. */' _ _ `\ * .*. */' *** + `\ * */' ( `\/'*) `\ * */' V + `\/' \ */' `\/' /\|/\ + `\/' | + + --+++==##<<{{******** Ming Yue ********}}>>##==++-- +:: Spring Boot :: (${spring-boot.version}) + --by ${app.author} \ No newline at end of file diff --git a/pom.xml b/pom.xml index 4ab6f29..e206618 100644 --- a/pom.xml +++ b/pom.xml @@ -52,6 +52,7 @@ mingyue-springboot-mybatis-plus mingyue-springboot-redis mingyue-springboot-cache + mingyue-springboot-webflux -- GitLab