Java --- springboot3之web新特性函数式web

一、函数式web

SpringMVC 5.2 以后 允许我们使用函数式的方式,定义Web的请求处理流程

函数式接口

Web请求处理的方式:①、@Controller + @RequestMapping耦合式 路由业务耦合)②、函数式Web:分离式(路由、业务分离)。

参考案例代码:

业务逻辑处理:

@Service
@Slf4j
public class PersonService {
    /**
     * 查询信息
     * @param serverRequest
     * @return
     */
    public ServerResponse getPerson(ServerRequest serverRequest){
        String id = serverRequest.pathVariable("id");
        log.info("查询用户id{}:",id);
        //业务处理
        Person person = new Person(1L, "张三", "123456qq@.com", 20);
        //构造响应
        return ServerResponse.ok().body(person);
    }

    /**
     * 查询所有用户
     * @param serverRequest
     * @return
     */
    public ServerResponse getPersons(ServerRequest serverRequest){
        //业务处理
        List<Person> people = Arrays.asList(
                new Person(1L, "张三", "123456qq@.com", 20),
                new Person(2L, "李四", "123457qq@.com", 21),
                new Person(3L, "王五", "123458qq@.com", 22));
        //构造响应
        return ServerResponse.ok().body(people);
    }

    /**
     * 保存用户
     * @param serverRequest
     * @return
     */
    public ServerResponse addPerson(ServerRequest serverRequest){
        //业务处理
        log.info("保存成功");
        //构造响应
        return ServerResponse.ok().build();
    }

    /**
     * 修改成功
     * @param serverRequest
     * @return
     */
    public ServerResponse updatePerson(ServerRequest serverRequest){
        //业务处理
        log.info("修改成功");
        //构造响应
        return ServerResponse.ok().build();
    }

    /**
     * 删除成功
     * @param serverRequest
     * @return
     */
    public ServerResponse removePerson(ServerRequest serverRequest){
        //业务处理
        log.info("删除成功");
        //构造响应
        return ServerResponse.ok().build();
    }
}

 接口管理:

@Configuration
public class WebFunctionConfig {
    /**
     * 函数式web:给容器中放一个RouterFunction<ServerResponse>的bean,统一路由管理
     * 核心四大对象
     * RouterFunction:定义路由信息。发什么请求,由谁来处理
     * RequestPredicate:定义请求规则:请求方式、请求参数
     * ServerRequest:封装请求完整数据
     * ServerResponse:封装响应完整数据
     *
     * @return
     */
    @Bean
    public RouterFunction<ServerResponse> personRoute(PersonService personService){
        RouterFunction<ServerResponse> routerFunction = RouterFunctions
                .route()//开始定义路由信息
                .GET("/person/{id}", RequestPredicates.accept(MediaType.ALL), personService::getPerson)
                .GET("/persons", personService::getPersons)
                .POST("/addPerson", RequestPredicates.accept(MediaType.APPLICATION_JSON), personService::addPerson)
                .PUT("/updatePerson/{id}", RequestPredicates.accept(MediaType.APPLICATION_JSON), personService::updatePerson)
                .DELETE("/removePerson/{id}", personService::removePerson)
                .build();
        return routerFunction;
    }
}

内容概要:本文系统梳理了多个科研领域的前沿研究与技术实现,重点涵盖FDTD方法中的完美匹配层(PML)研究,以及Matlab/Simulink在电磁、电力、控制、通信、信号处理、图像处理、路径规划、能源系统优化等领域的仿真与算法实现。文中列举了大量基于Matlab和Python的科研案例,如风电功率预测、负荷预测、无人机三维路径规划、电池系统故障诊断、雷达模拟、通信编码、微电网优化调度等,并强调结合智能优化算法(如粒子群、遗传算法、深度学习等)提升系统性能。同时,提供了丰富的代码资源与仿真模型,涵盖永磁同步电机控制、逆变器设计、多智能体任务分配、虚拟电厂调度等复杂系统,助力科研人员快速开展复现实验与创新研究。; 适合人群:具备一定编程基础,熟悉Matlab/Python工具,从事电气工程、自动化、通信、人工智能、新能源、控制科学等相关领域研究的研发人员及研究生。; 使用场景及目标:① 学习并实现FDTD仿真中的PML边界条件以有效抑制数值反射;② 掌握Matlab/Simulink在多物理场建模、控制系统设计与优化算法中的综合应用;③ 借助提供的代码资源完成科研复现、课程设计、竞赛项目或工程原型开发; 阅读建议:此资源以科研实战为导向,不仅提供理论方法,更强调代码实现与仿真验证。建议读者结合自身研究方向,按目录顺序查阅相关模块,下载配套代码进行调试与二次开发,以达到学以致用、融会贯通的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸭鸭老板

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值