<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency>
public class User { public User(String id,String name) { this.id=id; this.name=name; } private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
@Service public class UserService { private static final Map<String,User> userMap = new HashMap<String,User>(); static { userMap.put("1",new User("a1","kevin1")); userMap.put("2",new User("a2","kevin2")); userMap.put("3",new User("a3","kevin3")); userMap.put("4",new User("a4","kevin4")); userMap.put("5",new User("a5","kevin5")); } public Flux<User> list() { return Flux.fromIterable(userMap.values()).delayElements(Duration.ofSeconds(1)); } public Mono<User> findById(String id) { return Mono.justOrEmpty(userMap.get(id)); } public Mono<User> del(String id) { return Mono.justOrEmpty(userMap.remove(id)); } }
@RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @RequestMapping(value = "/list",produces = MediaType.APPLICATION_STREAM_JSON_VALUE) public Flux<User> list() { return userService.list(); } @RequestMapping("/find") public Mono<User> findById(String id) { return userService.findById(id); } @RequestMapping("/del") public Mono<User> del(String id) { return userService.del(id); } }
public class WebClientTest { @Test public void test() { Flux<String> userFlux = WebClient.create().get(). uri("http://localhost:8080/user/list"). accept(MediaType.APPLICATION_STREAM_JSON).retrieve().bodyToFlux(String.class); System.out.println(userFlux.blockLast()); } @Test public void test1() { Mono<String> userMono = WebClient.create().get(). uri("http://localhost:8080/user/find?id={id}",1). accept(MediaType.APPLICATION_JSON).retrieve().bodyToMono(String.class); System.out.println(userMono.block()); } }
相关推荐
于rabbitmq的基本概念和相关的理论这里就不做过多介绍了,在之前的篇幅中有过相应的介绍,也可以查询一些资料详细了解一下rabbitmq的基础知识,下面要介绍的点主要包括两个方面, 1、rabbitmq的消息确认机制; 2、...
RsJava 响应式编程, 高清带目录. 响应式编程是一种基于异步数据流概念的编程模式。在开发手机 App、 Web App 时, 要想保证对用户 请求的实时响应,给用户带来流畅的体验,响应式编程是一个不错的选择, RxJava 则是...
**SpringBoot集成JWT详解** SpringBoot是一个轻量级的Java框架,它简化了Spring应用程序的创建和部署。JWT(Json Web Token)则是一种用于在各方之间安全地传输信息的开放标准,广泛应用于身份验证和授权场景。在...
spring高手之路21 Spring API 网关 073 某D课堂 - 新版本微服务SpringCloud+Docker教程 video code.zip 35.5MB 9-05 微服务相关项目改造...7-05 高级篇幅之链路追踪组件Zipkin+Sleuth实战~1.mp4 355.3MB 7-04 可视
在 Office 高级应用中,特别是针对长文档的排版,如毕业论文,掌握一定的技巧和方法至关重要。本章主要讲解了如何高效地对毕业论文进行排版,包括以下几个核心知识点: 1. **大纲级别**:大纲级别是Word中对段落...
SpringBoot是Java开发领域的一款轻量级框架,以其简洁的配置、快速的启动和强大的整合能力,成为构建微服务的首选工具之一。在这个“SpringBoot公开招聘系统外网站”项目中,我们可以深入探讨SpringBoot如何为公开...
后端: SpringBoot Swagger Docker(docker需自己搭建docker环境) 前端: JSP 数据库:MySQL 技术语言 jdk 1.8 开发平台 Idea 2018 +win10 运行环境 Linux/Windows 毕业设计基于SSM/Springboot的商城项目,一个简单...
SpringBoot的招聘网站系统
SpringBoot项目模版
第十五章 C++入门 第十六章 对象 第十七章 常见类函数 第十八章 用C++输入输出 基本上这本书对于初学者来说是比较好的,因为比较全面而且分得比较细又有相关方面的展开,每个点上都有相应的实例,这个对...
iPhone应用程序开发攻略之深入浅出Objective-C2.0(适用于ios4)》系统地介绍了关于使用Objective-C2.0开发iPhone应用程序的基础知识,涵盖各种开发工具的操作技巧、框架(Framework)内部的工作原理、软件的调式技巧...
【摘要】 ...由于篇幅限制,完整的目录未在此处列出,但通常会包含引言、相关工作、系统设计、技术实现、测试与评估、结论和参考文献等部分,详细阐述整个项目的背景、理论基础、具体实现方法和成果评价。
iPhone应用程序开发攻略之深入浅出Objective-C2.0(适用于ios4)》系统地介绍了关于使用Objective-C2.0开发iPhone应用程序的基础知识,涵盖各种开发工具的操作技巧、框架(Framework)内部的工作原理、软件的调式技巧...
这部分通常涉及到权限控制和数据验证,SpringBoot的AOP(面向切面编程)和Bean验证注解可以提供强大的支持。 在开发过程中,我们还需要关注系统的扩展性和可维护性。采用模块化设计,使得各模块之间松耦合,便于...
ADO.chm ...限于篇幅,对于一些过于繁杂的相关内容,如动态样式属性(Dynamic Properties),滤镜(Filters),行为(Behaviors)请参阅我的其它相关著作。 本书中涉及到的所有HTML对象(Object,E
【标题】:“SpringBoot项目源码 - 天气预报系统” 这个标题表明我们正在讨论一个基于SpringBoot框架开发的天气预报应用程序。SpringBoot是Java生态系统中的一个流行框架,它简化了创建独立、生产级别的Spring应用...
《SpringBoot博客后台管理系统详解》 在现代互联网应用开发中,SpringBoot因其强大的功能和便捷的使用方式,已经成为Java开发者构建高效、稳定的Web应用程序的首选框架。本系统以"SpringBoot博客后台管理系统"为...
【标题】基于SpringBoot实现的商城项目源码分析 在当今的互联网开发环境中,Spring Boot以其简洁、快速的特性成为了Java后端开发的首选框架。本项目标题提及的"基于SpringBoot实现商城项目源码",揭示了一个使用...
项目采用SpringBoot +Maven多模块开发,数据库使用mysql,数据库脚本文件在dorm-web/src/main/resources/sql文件夹中。可以自己部署到IDEA开发工具中运行。
本手册针对的是已有一定网页设计制作经验的读者。其目的是提供完整清晰的... 限于篇幅,对于一些过于繁杂的相关内容,如动态样式属性(Dynamic Properties),滤镜(Filters),行为(Behaviors)请参阅我的其它相关著作。