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)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球