当前位置: 首页 > news >正文

网站栏目优化安防 光速东莞网站建设

网站栏目优化,安防 光速东莞网站建设,搭建系统,科技感网站模板函数式web 前言场景给容器中放一个Bean&#xff1a;类型是 RouterFunction<ServerResponse>每个业务准备一个自己的handler使用集合的时候加注解请求的效果 前言 springmvc5.2 以后允许我们使用函数式的方式&#xff0c;定义web的请求处理流程 函数式接口 web请求处理的…

函数式web

  • 前言
  • 场景
  • 给容器中放一个Bean:类型是 RouterFunction<ServerResponse>
  • 每个业务准备一个自己的handler
  • 使用集合的时候加注解
  • 请求的效果

前言

springmvc5.2 以后允许我们使用函数式的方式,定义web的请求处理流程
函数式接口
web请求处理的方式:
1、@controller + @RequestMapping: 耦合性(路由、业务耦合)
2、函数式web:分离式(路由、业务分离)
官方文档
在这里插入图片描述

场景

场景:user Restful-crud
GET/user/1 获取1号用户
GET/users 获取所有用户
POST/user 请求体携带json
put/user/1 请求体携带json,修改1号用户
delete/user/1 删除1号用户

给容器中放一个Bean:类型是 RouterFunction

在这里插入图片描述

package com.atguigu.boot304demo.config;import com.atguigu.boot304demo.biz.UserBizHandler;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.web.servlet.function.RequestPredicates;
import org.springframework.web.servlet.function.RouterFunction;
import org.springframework.web.servlet.function.RouterFunctions;
import org.springframework.web.servlet.function.ServerResponse;/*** @author jitwxs* @date 2023年10月22日 21:33*/
@Configuration
public class WebFunctionConfig {/*函数式web:1、给容器中放一个Bean:类型是 RouterFunction<ServerResponse>2、每个业务准备一个自己的handler核心四大对象:1、RouterFunction:定义路由信息,发什么请求,谁来处理2、RequestPredicate: 定义请求:请求谓语,请求方式(GET\POSt)、请求参数3、ServerTequest: 封装请求完整数据4、ServerResponse: 封装响应完整数据*/@Beanpublic RouterFunction<ServerResponse> userRouter(UserBizHandler userBizHandler){return RouterFunctions.route().GET("/user/{id}", RequestPredicates.accept(MediaType.ALL),userBizHandler::getUser).GET("/users", userBizHandler::getUsers).POST("/user",RequestPredicates.accept(MediaType.APPLICATION_JSON), userBizHandler::postUser).PUT("/user/{id}",RequestPredicates.accept(MediaType.APPLICATION_JSON),userBizHandler::putUser).DELETE("/user/{id}",userBizHandler::deleteUser).build();}
}

每个业务准备一个自己的handler

在这里插入图片描述

package com.atguigu.boot304demo.biz;import com.atguigu.boot304demo.bean.Person;
import jakarta.servlet.ServletException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.web.servlet.function.ServerRequest;
import org.springframework.web.servlet.function.ServerResponse;import java.io.IOException;
import java.util.Arrays;
import java.util.List;/*** @author jitwxs* @date 2023年10月22日 21:51*/
@Slf4j
@Service
public class UserBizHandler {/*查询指定id的用户@param request@return*/public ServerResponse getUser(ServerRequest request){
//        业务处理String id = request.pathVariable("id");log.info("正在查询id为{}的数据",id);Person person = new Person(2l,"张三","aaa.com",18);return ServerResponse.ok().body(person);}public ServerResponse getUsers(ServerRequest request){
//        业务处理List<Person> list = Arrays.asList(new Person(1l,"张三","aaa.com",18),new Person(2l,"张三","aaa.com",18));return ServerResponse.ok().body(list);}public ServerResponse postUser(ServerRequest request) throws ServletException, IOException {Person body = request.body(Person.class);log.info("保存的信息是{}",body);String ace = "post请求成功";
//        业务处理return ServerResponse.ok().body(ace);}public ServerResponse putUser(ServerRequest request){String ace = "put请求成功";
//        业务处理return ServerResponse.ok().body(ace);}public ServerResponse deleteUser(ServerRequest request){String ace = "删除成功";
//        业务处理return ServerResponse.ok().body(ace);}
}

使用集合的时候加注解

在这里插入图片描述

请求的效果

在这里插入图片描述
在这里插入图片描述

http://www.yayakq.cn/news/377734/

相关文章:

  • wordpress文章列表多图展示网站要素的优化设计
  • 仙桃网站建设公司平顶山网站建设费用
  • wordpress能做交互类网站湖南 网站备案
  • 教做幼儿菜谱菜的网站手机优化大师下载安装
  • wordpress 添加固定字段北京网站seo外包
  • 湖南网站开发 岚鸿高端网站建设哪家便宜
  • 惠州网站优化建设html5是什么意思
  • 给厂家做代理上什么网站论坛网站文本抓取怎么做
  • 网页站点的用途哪里有国内网站建设公司
  • 视频网站开发需要什么语言聊城网站建设的地方
  • 潍坊网站建设培训班cms网站建设
  • 仿站小工具+wordpressapp营销策略有哪些
  • 云南网站建设电话百度如何免费推广
  • 文化传媒主播公司 东莞网站建设ftp地址格式怎么写
  • 用电脑怎么做网站猴痘的预防措施
  • 连云港外贸网站建设电商网站开发的背景
  • 自己做网站需不需要钱做海报的网站类似于创客贴
  • 现在什么网站比较火做推广7天学会自媒体短视频制作
  • 如何做阿里巴巴企业网站公司做网站有什么用
  • 网站开发移动app网站结构有哪些类型
  • 网站怎样做排名免费建网
  • 怎样在浏览器上找网站wordpress修改后台管理地址=
  • 博客网站开发背景小程序营销策划方案
  • 盐城哪家做网站的正规搜索引擎优化的方法有哪些?
  • 淘宝api 做网站工商服务网
  • 自己做的网站把密码改忘了怎么办淘宝客网站怎么建设
  • 电商网站开发代码合肥做网站的公司讯登
  • php 做网站佛山新网站建设机构
  • 珠海模板建站平台wordpress学生信息管理系统 php
  • 赤峰市住房和城乡建设局官方网站可拖拽建设网站没有了吗