日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Spring WebFlux的使用指南

瀏覽:126日期:2023-07-15 17:07:01

Spring WebFlux是spring5的一部分,它為web應用程序提供反應式編程支持。

在本教程中,我們將使用RestController和WebClient創建一個小型響應式REST應用程序。

我們還將研究如何使用Spring安全保護我們的反應端點。

Spring-WebFlux框架

Spring WebFlux在內部使用Project Reactor及其發布者實現Flux和Mono。

新框架支持兩種編程模型:

基于注釋的反應元件 功能路由和處理 依賴項

讓我們從spring boot starter webflux依賴項開始,它包含所有其他必需的依賴項:

spring boot和spring boot starter,用于基本的spring boot應用程序設置 spring-webflux框架 reactor-core我們需要的反應流,也需要reactor-netty

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> <version>2.2.6.RELEASE</version></dependency>響應式應用

我們現在將使用Spring WebFlux構建一個非常簡單的REST EmployeeManagement應用程序:

我們將使用一個簡單的域模型-帶有id和name字段的Employee 我們將使用RestController構建restapi,以將員工資源作為單個資源和集合發布 我們將使用WebClient構建一個客戶端來檢索相同的資源 我們將使用WebFlux和Spring Security創建一個安全的被動端點 響應式RestController

springwebflux支持基于注釋的配置,方式與springwebmvc框架相同。

首先,在服務器上,我們創建一個帶注釋的控制器,它發布員工資源的反應流。

讓我們創建帶注釋的EmployeeController:

@RestController@RequestMapping('/employees')public class EmployeeController { private final EmployeeRepository employeeRepository;// constructor...}

EmployeeRepository可以是任何支持非阻塞反應流的數據存儲庫。

單一資源

讓我們在控制器中創建一個端點,用于發布單個員工資源:

@GetMapping('/{id}')private Mono<Employee> getEmployeeById(@PathVariable String id) { return employeeRepository.findEmployeeById(id);}

我們在Mono中包裝一個Employee資源,因為我們最多返回一個Employee。

集合資源

我們還要添加一個端點來發布所有雇員的集合資源:

@GetMappingprivate Flux<Employee> getAllEmployees() { return employeeRepository.findAllEmployees();}

對于集合資源,我們使用類型為Employee的流量,因為它是0..n元素的發布者。

反應式Web客戶端

Spring5中引入的WebClient是一個支持反應流的非阻塞客戶端。

我們可以使用WebClient創建一個客戶端,從EmployeeController提供的端點檢索數據。

讓我們創建一個簡單的EmployeeWebClient:

public class EmployeeWebClient { WebClient client = WebClient.create('http://localhost:8080'); // ...}

在這里,我們使用工廠方法create創建了一個WebClient。它會指向localhost:8080,所以我們可以使用或相對的URL來調用這個客戶端實例。

檢索單個資源

要從endpoint/employee/{id}檢索Mono類型的單個資源,請執行以下操作:

Mono<Employee> employeeMono = client.get() .uri('/employees/{id}', '1') .retrieve() .bodyToMono(Employee.class);employeeMono.subscribe(System.out::println);檢索集合資源

類似地,要從endpoint/employees檢索Flux類型的集合資源,請執行以下操作:

Flux<Employee> employeeFlux = client.get() .uri('/employees') .retrieve() .bodyToFlux(Employee.class);employeeFlux.subscribe(System.out::println);Spring WebFlux安全性

我們可以使用Spring Security來保護我們的反應端點。

假設我們在EmployeeController中有一個新的端點。此端點更新員工詳細信息并發回更新的員工。

由于這允許用戶更改現有員工,因此我們希望僅將此端點限制為管理員角色用戶。

讓我們為EmployeeController添加一個新方法:

@PostMapping('/update')private Mono<Employee> updateEmployee(@RequestBody Employee employee) { return employeeRepository.updateEmployee(employee);}

現在,為了限制對該方法的訪問,讓我們創建SecurityConfig并定義一些基于路徑的規則以僅允許管理員用戶:

@EnableWebFluxSecuritypublic class EmployeeWebSecurityConfig { // ... @Bean public SecurityWebFilterChain springSecurityFilterChain( ServerHttpSecurity http) {http.csrf().disable() .authorizeExchange() .pathMatchers(HttpMethod.POST, '/employees/update').hasRole('ADMIN') .pathMatchers('/**').permitAll() .and() .httpBasic();return http.build(); }}

此配置將限制對/employees/update的訪問。因此,只有具有ADMIN角色的用戶才能訪問此端點并更新現有員工。

最后,注解@EnableWebFluxSecurity添加了一些默認配置的Spring-Security-WebFlux支持。

結論

在本文中,我們探討了如何創建和使用springwebflux框架支持的反應式web組件。例如,我們構建了一個小型的REST應用程序。

除了Reactive RestController和WebClient之外,WebFlux框架還支持Reactive WebSocket和對應的WebSocketClient,以進行套接字樣式的Reactive流。

最后,在Github上提供了本文中使用的完整源代碼:https://github.com/eugenp/tutorials/tree/master/spring-5-reactive-security

以上就是Spring WebFlux的使用指南的詳細內容,更多關于Spring WebFlux的使用的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
伊人久久亚洲影院| 亚洲激情中文在线| av资源新版天堂在线| 欧美日韩精品免费观看视欧美高清免费大片 | 久久久久一区| 91精品精品| 婷婷成人av| 久久精品福利| 国产精品白丝久久av网站| 国产欧美三级| 国产欧美一区| 亚洲一区区二区| 首页亚洲欧美制服丝腿| 日本一区二区三区视频在线看| 美女精品视频在线| 国产一区二区三区四区大秀| 日韩精品一区第一页| 蜜桃视频免费观看一区| 国产另类在线| 欧美xxxx中国| 日韩福利视频网| 狠狠久久伊人中文字幕| 欧美性www| 日本亚洲欧美天堂免费| 亚洲综合精品| 国产乱码精品一区二区亚洲| 日韩综合精品| 91亚洲一区| 日本在线高清| 国产精品一卡| 久久精品中文| 国产精品一区二区av交换| 日韩一区二区三区免费播放| 日韩一区二区三区免费视频 | 老司机精品视频网| 鲁大师影院一区二区三区| 九九99久久精品在免费线bt| 日本中文字幕视频一区| av资源亚洲| 欧美日韩在线精品一区二区三区激情综合 | 亚洲性色视频| 国产伦乱精品| 精品视频久久| 婷婷亚洲成人| 日韩专区一卡二卡| 久久男女视频| 中文欧美日韩| 日韩欧美二区| 99成人在线| 天堂√8在线中文| 999国产精品999久久久久久| 亚洲免费福利一区| 日韩成人亚洲| 欧美在线精品一区| 久久亚洲资源中文字| 日韩黄色免费网站| av不卡免费看| 国产精品theporn| 91成人精品在线| 婷婷激情图片久久| 久久亚洲精精品中文字幕| 夜久久久久久| 国产手机视频一区二区| 午夜亚洲福利在线老司机| 久久国产亚洲精品| 久久国产精品久久久久久电车| 一区视频在线| 日本欧美韩国一区三区| 日韩欧美四区| 亚洲aa在线| 夜夜嗨一区二区| 国产综合婷婷| 国产伦理一区| 中文亚洲欧美| 亚洲精品国产日韩| 青青草国产成人99久久| 久久精品国产网站| 高清av一区| 日本成人在线不卡视频| 99国内精品| 日韩高清中文字幕一区二区| 精品99在线| 成人国产精品一区二区免费麻豆| 国产精品免费不| 国产极品嫩模在线观看91精品| 久久99偷拍| 国产成人精品一区二区三区视频 | 一区二区精品伦理...| 欧美在线观看视频一区| 蜜桃久久久久久| 国产一区二区三区天码| aa国产精品| 久久av网站| 丝袜美腿亚洲色图| 国产黄色精品| 亚洲欧美日韩国产一区二区| 国产极品一区| 日韩精品一区第一页| 深夜福利视频一区二区| 中文字幕日韩高清在线| 福利欧美精品在线| 亚洲91在线| 国产福利91精品一区二区| 日韩中文视频| 一区二区国产精品| 成人一区而且| 日欧美一区二区| jiujiure精品视频播放| 成人精品视频| 麻豆精品视频在线| 一本综合精品| 国产精品三上| 在线日韩欧美| 日韩电影二区| 久久一区亚洲| 日韩激情一二三区| 视频在线在亚洲| 加勒比视频一区| 国产日韩欧美一区二区三区在线观看| 中文国产一区| 亚洲欧美日韩视频二区| 午夜av一区| 好吊视频一区二区三区四区| 中文字幕色婷婷在线视频| 精品高清久久| 美女国产精品久久久| 日本不卡高清视频| 日韩在线麻豆| 日韩制服丝袜av| 亚洲精品1区| 午夜欧美视频| 尹人成人综合网| 激情久久一区二区| 国产精成人品2018| 国产精品免费大片| 亚洲天堂av影院| 免费av一区| 蜜臀久久99精品久久久久宅男| 亚洲深夜福利| 日本午夜精品| 国产毛片久久久| 丝袜美腿成人在线| 日韩激情一区二区| 久久不卡日韩美女| 婷婷综合亚洲| 久久久久久美女精品| 香蕉成人久久| 天海翼亚洲一区二区三区| 91精品国产自产精品男人的天堂| 久久伊人亚洲| 蜜桃伊人久久| 国产成人久久精品麻豆二区| 99久久久久国产精品| 日韩综合一区二区| 久久精品国产网站| 99视频精品免费观看| 国产精品黄网站| 午夜久久影院| 丝袜国产日韩另类美女| 精品视频高潮| 日韩高清三区| 99久久夜色精品国产亚洲1000部| 婷婷久久免费视频| 国产在线看片免费视频在线观看| 亚洲色图网站| 亚洲国产影院| 国产aⅴ精品一区二区四区| 蜜桃av一区| 欧美在线资源| 日韩中文在线播放| 国产麻豆一区二区三区| 视频在线观看国产精品| 久久精品在线| 天堂√中文最新版在线| 精品国产精品久久一区免费式| 丝袜国产日韩另类美女| 中国字幕a在线看韩国电影| 欧美日韩精品一区二区三区视频 | 少妇精品久久久一区二区| 欧美日韩在线二区| 91麻豆国产自产在线观看亚洲| 日韩免费av| 国产欧美69| 免费高清在线一区| 影音先锋国产精品| 日韩国产欧美| 久久精品国产一区二区| 91欧美精品| 亚洲精品欧美| 麻豆成人在线| 欧美综合另类| 成人自拍av| 久久久久亚洲| 欧美不卡在线| 不卡一二三区| 日韩电影在线视频| 高清在线一区| 日本免费一区二区三区四区| 色婷婷色综合| 日韩精品网站|