springboot~HandlerFunction和RouterFunction

HandlerFunction和RouterFunction

RouterFunction为我们应用程序添加一个新的路由,这个路由需要绑定一个HandlerFunction,做为它的处理程序,里面可以添加业务代码,比如,你添加一个ImageCodeHandler,用来生产验证码。

  • ImageCodeHandler,做为例子,它只返回一个1234的数字
@RequiredArgsConstructor
public class ImageCodeHandler implements HandlerFunction<serverresponse> {

    @Override
    public ServerResponse handle(ServerRequest request) throws Exception {
        return ServerResponse.status(HttpStatus.OK).contentType(MediaType.TEXT_PLAIN).body("1234");
    }

}
</serverresponse>
  • RouterFunctionConfiguration用来注册一个路由和它的处理程序

proxyBeanMethods配置类是用来指定@Bean注解标注的方法是否使用代理,默认是true使用代理,直接从IOC容器之中取得对象;如果设置为false,也就是不使用注解,每次调用@Bean标注的方法获取到的对象和IOC容器中的都不一样,是一个新的对象。

Spring 5.2.0+的版本,建议你的配置类均采用Lite模式去做,即显示设置proxyBeanMethods = false。Spring Boot在2.2.0版本(依赖于Spring 5.2.0)起就把它的所有的自动配置类的此属性改为了false,即@Configuration(proxyBeanMethods = false),提高Spring启动速度

@Configuration(proxyBeanMethods = false)
@RequiredArgsConstructor
public class RouterFunctionConfiguration {

    @Bean
    public RouterFunction<serverresponse> routerFunction() {
        return RouterFunctions.route(
                RequestPredicates.path("/code").and(RequestPredicates.accept(MediaType.TEXT_PLAIN)),
                imageCodeHandler());
    }

    @Bean
    public ImageCodeHandler imageCodeHandler() {
        return new ImageCodeHandler();
    }

}
</serverresponse>

Original: https://www.cnblogs.com/lori/p/16525324.html
Author: 张占岭
Title: springboot~HandlerFunction和RouterFunction

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/576080/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 红黑树添加删除

    上一篇写了234树对比红黑树,和红黑树某些情况需要调整的原因,这篇就只写红黑树的添加和删除 红黑树 JAVA技术交流群:737698533 性质 每个节点要么红色要么黑色 根节点是…

    数据库 2023年6月16日
    053
  • MySQL 中如何定位 DDL 被阻塞的问题

    经常碰到开发、测试童鞋会问,线下开发、测试环境,执行了一个DDL,发现很久都没有执行完,是不是被阻塞了?要怎么解决? 包括在群里,也经常会碰到类似问题:DDL 被阻塞了,如何找到阻…

    数据库 2023年5月24日
    063
  • SMBMS(超市订单管理系统)项目从零开始搭建

    如果需要完整的系统可以加我qq:1842329236 一、搭建一个maven web项目 新建一个maven,并且使用模板 maven的详细创建,及配置请看这篇文章https://…

    数据库 2023年6月16日
    079
  • 我的第一本算法书 第一章

    1.1 决定数据顺序和位置关系的是数据结构 电话簿的数据结构 按获取顺序排序 按拼音顺序排序 添加简单 查询麻烦 查询简单 添加麻烦 两者结合 分别使用不同的表存储不同的首字母, …

    数据库 2023年6月11日
    093
  • 我的JAVA面试题备忘录

    以下是我收集的一些问题,有的是网上摘录的,有的是自己参加面试被问到的,有的是工作或学习时遇到的,等等。 为什么要记录这些呢? 一方面,我相信,这样做对我自己的技术提升是有帮助的。在…

    数据库 2023年6月6日
    059
  • 【Java代码之美】 — Java17新特性初探

    1.背景 Oracle与9月中旬正式宣布推出Java17,正如官方所说: JDK17是最新的长期稳定支持的版本作为JDK11之后的下一个长期支持的版本; 也是Spring Fram…

    数据库 2023年6月6日
    0100
  • JUC学习笔记(六)

    JUC 中提供了三种常用的辅助类,通过这些辅助类可以很好的解决线程数量过多时 Lock 锁的频繁操作。这三种辅助类为: CountDownLatch: 减少计数 CyclicBar…

    数据库 2023年6月6日
    098
  • Java实现平滑加权轮询算法–降权和提权

    上一篇讲了普通轮询、加权轮询的两种实现方式,重点讲了平滑加权轮询算法,并在文末留下了悬念: 节点出现分配失败时降低有效权重值;成功时提高有效权重值(但不能大于weight值)。 本…

    数据库 2023年6月6日
    093
  • 如何重置postgresql用户密码

    如何重置postgresql用户密码 场景: 打算新建一个postgresql的数据库 FooDB 并把所有者权限赋给用户 foo 正常操作应该是:先创建用户foo,再用foo身份…

    数据库 2023年6月9日
    0107
  • Mysql的知识梳理

    数据准备: –建表 create table customer_jia(CID int(4), Cname varchar(20), Csex varchar(2), …

    数据库 2023年6月16日
    083
  • JAVA编程练习01作业

    2 、 输入一个圆半径(r),计算并输出圆的面积和周长。 3 、输入一个三位正整数n,输出其个位、十位和百位上的数字。 4 、根据性别和体重计算输血量。女性体重不超过50kg的输血…

    数据库 2023年6月11日
    0153
  • 视野 | KeyDB:为 Web 应用而生的高性能 Redis 分支

    王奇 顾问软件工程师目前从事 PaaS 中间件服务(Redis / MongoDB / ELK 等)开发工作,对 NoSQL 数据库有深入的研究以及丰富的二次开发经验,热衷对 No…

    数据库 2023年5月24日
    092
  • java 考试系统 在线学习 视频直播 人脸识别 springboot框架 前后分离 PC和手机端

    新增功能:培训学习模块, PDF电子课程、视频课程、直播课程(自己搭建直播流服务器) 人脸识别(考试时验证,有开关)、补考开关 组建试卷:创建试卷,题目、类型、总分、及格分数、时长…

    数据库 2023年6月6日
    090
  • canal

    canal 简介 canal 主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。 canal 工作原理: canal 模拟 MySQL slave 的交互协议…

    数据库 2023年6月14日
    087
  • 系列文章分类汇总

    尤娜系列 从前,有一个简单的通道系统叫尤娜…… 尤娜系统的第一次飞行中换引擎的架构垂直拆分改造 四种常用的微服务架构拆分方式 尤娜,我去面试了 专业课回顾 …

    数据库 2023年6月6日
    064
  • 如何成为一名开发人员——第 1 部分:编码技巧

    1 学习一门语言 程序员编写计算机代码,所以你必须学会说这种语言。 但是, 你首先学习哪种编程语言并不重要!这完全取决于你对什么感兴趣。例如… 如果你想进入 Web 开…

    数据库 2023年6月14日
    0103
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球