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)

大家都在看

  • Indian Math tech

    https://www.youtube.com/watch?v=2j0nHEy5y18 本文来自博客园,作者:ukyo–BlackJesus,转载请注明原文链接:htt…

    数据库 2023年6月11日
    083
  • Matery主题自定义(一)黑夜模式

    黑夜模式 作为一个前端学习者,自然懂得黑夜模式的重要性,可惜主题原生未提供,那就自己弄吧 参考其他优秀产品的黑夜模式,得出共性: 那就是黑夜模式的背景一般不会是纯黑(#000);而…

    数据库 2023年6月16日
    076
  • Consul 入门-gRPC 服务注册与发现

    前言 &#x5047;&#x5982;&#x6211;&#x6709;&#x94B1;&#xFF0C;&#x6211;&am…

    数据库 2023年6月6日
    096
  • js异步编程终级解决方案 async/await

    在最新的ES7(ES2017)中提出的前端异步特性:async、await。 async、await是什么 async顾名思义是”异步”的意思,async用…

    数据库 2023年6月9日
    086
  • 从外包到互联网,加油,打工人!

    以下从公众号@BiggerBoy同步 Hello,大家好,我是walking。很久没有更新了,十分抱歉。 因为前几个月在忙两个事情,一个是练车考驾照,一个是准备面试,所以就没有时间…

    数据库 2023年6月11日
    062
  • JDBC

    JDBC 一、JDBC概述 什么是JDBC? JDBC 是使用 Java 语言操作关系型数据库的一套 API。这套 API 是交由不同的数据库厂商实现的。我们利用 JDBC 编写操…

    数据库 2023年5月24日
    084
  • 07 sql函数

    函数:切记函数和括号要紧密相连内置函数1.算术函数abs mod roundmax min avg sum count 这几个为聚集函数,特别在分组中常用 select abs(-…

    数据库 2023年6月16日
    072
  • 在启动mysql时,执行service mysqld start报错,不能进入Mysql

    在启动mysql时,执行 service mysqld start报错,不能进入Mysql执行 systemctl restart mysqld.service 成功进入! Ori…

    数据库 2023年6月11日
    082
  • MP 的攻击 SQL 阻断解析器(V3.4.0)

    一、何为SQL阻断器 官网给出的一句话 阻止恶意的全表更新删除 官网地址已经总结的很到位了 二、具体是如何实现的 也很简单,通过MP(Mybatis-Plus)的拦截器来实现,官方…

    数据库 2023年6月6日
    088
  • JavaWeb核心篇(4)——Cookie和Session

    Java核心篇(4)——Cookie和Session 本篇文章将会简单介绍Cookie和Session的概念和用法 会话跟踪技术 首先我们需要搞清楚会话和会话跟踪的概念: 会话:用…

    数据库 2023年6月14日
    0124
  • mybatis中文文档PDF版

    https://share.weiyun.com/2Dwd35jD 密码:dguiby Original: https://www.cnblogs.com/qingxin12345…

    数据库 2023年6月9日
    0119
  • SQL语句大全,所有的SQL都在这里

    SQL语句大全,所有的SQL都在这里 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbnam…

    数据库 2023年6月9日
    072
  • Java 中的异常处理机制

    本篇文章主要介绍了 Java 中的异常 如何处理函数抛出的异常 处理异常的原则 异常处理时,性能开销大的地方 Java 语言在设计之初就提供了相对完善的异常处理机制。 我们首先介绍…

    数据库 2023年6月11日
    0102
  • Django配置redis缓存

    Django配置redis缓存 (1)首先安装django-redis pip install django-redis (2)在settings中配置如下所示: 改配置仅为示例,…

    数据库 2023年6月14日
    092
  • 1 请谈谈面向对象的三大特征?

    隐藏对象的属性和实现细节,仅对外公开接口,控制程序中属性的读取和修改的访问级别; 封装就是将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据和操作数据的源代码有机结合,…

    数据库 2023年6月6日
    0204
  • MySQL的本地事务、全局事务、分布式事务

    404. 抱歉,您访问的资源不存在。 可能是URL不正确,或者对应的内容已经被删除,或者处于隐私状态。 [En] It may be that the URL is incorre…

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