专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Spring 5 响应式开发示例,Spring响应式开发例子

前言

Spring 5 已经大力支持了响应式开发模式,引入的响应式框架叫做 Spring WebFlux

关于 Spring 5 响应式开发的介绍,可以看之前的文章“Spring 5 响应式开发”。

本文不讲理论,直接创建一个响应式的 Restful API 示例,基于 Spring Boot 2.0、MongoDB,目的在于快速了解响应式代码是如何编写的。

如果想实际动手实践一下,文章末尾提供了源码下载地址。

示例代码

(1)创建项目

最简单的方式是到spring网站去初始化一个项目,网址 http://start.spring.io。

51_1.png

Group : com.example

Article : webflux-demo

Dependencies : Reactive Web 和 Reactive MongoDB

填好后点击生成项目的按钮就可以下载下来了。

(2)连接数据库

MongoDB 的安装步骤就不细说了,我使用的是 Docker 容器,很方便。

application.properties 中添加数据库连接信息:

spring.data.mongodb.uri=mongodb://localhost:27017/webflux_demo

(3)创建 Model

51_2.png

(4)创建 DAO

51_3.png

和以前使用JPA时一样,只是继承了reactive形式的父类。

里面什么都不用写,自动获得 CRUD 等基本能力。

(5)创建 Controller

下面的代码比较多,但实际就是 CRUD 的基本操作,重点看写法。

51_4.png

可以看到,与我们平时写的代码几乎一样,只是返回类型不一样了,比如 getAllBlogs() 获取全部blog列表,平时写法中返回值应该是 List,而这里变成了 Flux,Flux 相当于 N 个 Blog 的容器。

代码就都完成了,下面运行起来看看效果。

运行测试

启动项目

mvn spring-boot:run

使用 postman 访问 api

创建

51_5.png

查询所有

51_6.png

查询单条

51_7.png

修改

51_8.png

删除

51_9.png

查询所有,验证删除效果

51_10.png

小结

Spring 5 的 webflux 框架真的很牛,底层完全实现了响应式模型,使我们项目的性能得到较大提升,并且在开发方式上尽可能的与原有方式保持一致。

通过上面这个小DEMO,我们可以对响应式编码方式有一个大概的了解,可以看到,非常简单,但不要以为实际开发也很简单,Flux 有大量的方法需要我们去学习,而且 Spring 5 是基于 Java8 的,在开发中会大量用到 Lambda表达式、streams 操作,如果Java8还不熟,需要赶紧上车了。

文章永久链接:https://tech.souyunku.com/11783

未经允许不得转载:搜云库技术团队 » Spring 5 响应式开发示例,Spring响应式开发例子

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们