前言Spring 5 已經大力支持瞭響應式開發模式,引入的響應式框架叫做 Spring WebFlux。關於 Spring 5 響應式開發的介紹,可以看之前的文章“Spring 5 響應式開發”。本文不講理論,直接創建一個響應式的 Restful API 示例,基於 Spring Boot 2.0、MongoDB,目的在於快速瞭解響應式代碼是如何編寫的。如果想實際動手實踐一下,文章末尾提供瞭源碼下載地址。示例代碼(1)創建項目最簡單的方式是到spring網站去初始化一個項目,網址 http://start.spring.io。Group : com.exampleArticle : webflux-demoDependencies : Reactive Web 和 Reactive MongoDB填好後點擊生成項目的按鈕就可以下載下來瞭。(2)連接數據庫MongoDB 的安裝步驟就不細說瞭,我使用的是 Docker 容器,很方便。application.properties 中添加數據庫連接信息: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 的容器。代碼就都完成瞭,下面運行起來看看效果。運行測試啟動項目mvn spring-boot:run
使用 postman 訪問 api創建查詢所有查詢單條修改刪除查詢所有,驗證刪除效果小結Spring 5 的 webflux 框架真的很牛,底層完全實現瞭響應式模型,使我們項目的性能得到較大提升,並且在開發方式上盡可能的與原有方式保持一致。通過上面這個小DEMO,我們可以對響應式編碼方式有一個大概的瞭解,可以看到,非常簡單,但不要以為實際開發也很簡單,Flux 有大量的方法需要我們去學習,而且 Spring 5 是基於 Java8 的,在開發中會大量用到 Lambda表達式、streams 操作,如果Java8還不熟,需要趕緊上車瞭。
本文出自快速备案,转载时请注明出处及相应链接。
本文永久链接: https://www.175ku.com/41905.html