javascript
springwebflux 页面_Spring Webflux 响应式框架入门
@Componentpublic classBannerHandler {
@AutowiredprivateBannerService bannerService;public MonogetList(ServerRequest request) {//獲取請求參數
String page = request.queryParam("page").orElse("1");
String size= request.queryParam("rows").orElse("5");
DataGridVO result =bannerService.getList(Integer.valueOf(page), Integer.valueOf(size));returnServerResponse.ok().body(BodyInserters.fromObject(result));
}public Monoupdate(ServerRequest request) {//參數序列化為實體類進行更新
return request.bodyToMono(Banner.class).flatMap(banner ->{returnServerResponse.ok().contentType(MediaType.APPLICATION_JSON_UTF8)
.body(BodyInserters.fromObject(bannerService.update(banner)));
});
}public Monodeletes(ServerRequest request) {//獲取路徑中的參數作用等同于 @PathVariable
String ids = request.pathVariable("ids");
Assert.hasText(ids,"ids不能為空");return ServerResponse.ok().body(BodyInserters.fromObject(bannerService.deletes(ids.split(","))));
}public Monoinit(ServerRequest request) {
Map map = new HashMap<>();
map.put("name", "aqiu");
map.put("time", newDate());
List list = new ArrayList();
list.add("param1");
list.add("param2");
list.add("param3");
map.put("list", list);//返回thymeleaf模版頁面
return ServerResponse.ok().render("index", map);
}public Monoupload(ServerRequest request) {//獲取文件參數 并進行存儲
return request.multipartData().flatMap(map ->{
map.forEach((k, v)->{
v.forEach(i->{
FilePart f=(FilePart) i;
f.transferTo(new File("/tmp/" +f.filename()));
});
});returnServerResponse.ok().contentType(MediaType.APPLICATION_JSON_UTF8)
.body(BodyInserters.fromObject(map.size()));
});
}public Monodownload(ServerRequest request) {//讀取文件并包裝為DataBuffer返回,spring-webflux會自動寫入response
File file = new File("/tmp/test.jpeg");return ServerResponse.ok().header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=test.jpeg")
.contentType(MediaType.IMAGE_JPEG).contentLength(file.length())
.body(BodyInserters.fromDataBuffers(Mono.create(r->{
DataBuffer buf= newDefaultDataBufferFactory().wrap(FileIOUtil.syncRead(file));
r.success(buf);return;
})));
}
}
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的springwebflux 页面_Spring Webflux 响应式框架入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 河北省电子工程高级职称公示_2019年河
- 下一篇: java 初始化duration_Jav