• 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");
    	}
    
    }
    
    • 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();
    	}
    
    }
    
  • 相关阅读:
    Vue的watch监听事件
    Vue路由-命名视图实现经典布局
    Vue中使用children实现路由的嵌套
    Vue中router两种传参方式
    mysql 压缩备份 压缩还原 命令
    【转】SVN branches trunk 合并 讲解
    svn 更新提交文件冲突
    mysql 导出表数据表结构
    利用jenkins打造通过自定义参数更新svn 指定文件任务
    centos 7 安装jira 破解
  • 原文地址:https://www.cnblogs.com/lori/p/16525324.html
Copyright © 2020-2023  润新知