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();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2017-07-27 docker~swarm搭建docker高可用集群
2016-07-27 EF架构~CodeFirst生产环境的Migrations
2016-07-27 EF架构~关于多对多关系表无法更新与插入的问题
2013-07-27 品味编程~底层开发人员应该这样设计一个字体类
2012-07-27 代码重构~提取到类
2011-07-27 不忘本~浅拷贝和深拷贝
2011-07-27 用Jquery自己开发个代阴影的对话框吧!