前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring 5 响应式开发示例

Spring 5 响应式开发示例

作者头像
dys
发布2018-06-04 16:33:41
7340
发布2018-06-04 16:33:41
举报
文章被收录于专栏:性能与架构性能与架构

前言

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

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

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

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

示例代码

(1)创建项目

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

Group : com.example

Article : webflux-demo

Dependencies : Reactive Web 和 Reactive MongoDB

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

(2)连接数据库

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

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

代码语言:javascript
复制
spring.data.mongodb.uri=mongodb://localhost:27017/webflux_demo

(3)创建 Model

(4)创建 DAO

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

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

(5)创建 Controller

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

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

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

运行测试

启动项目

代码语言:javascript
复制
mvn spring-boot:run

使用 postman 访问 api

创建

查询所有

查询单条

修改

删除

查询所有,验证删除效果

小结

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 示例代码
    • (1)创建项目
      • (2)连接数据库
        • (3)创建 Model
          • (4)创建 DAO
            • (5)创建 Controller
            • 运行测试
            • 小结
            相关产品与服务
            云数据库 MongoDB
            腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档