Spring5新特性:函数式Web框架

Spring5新特性:函数式Web框架

ID:41739953

大小:84.60 KB

页数:13页

时间:2019-08-31

Spring5新特性:函数式Web框架_第1页
Spring5新特性:函数式Web框架_第2页
Spring5新特性:函数式Web框架_第3页
Spring5新特性:函数式Web框架_第4页
Spring5新特性:函数式Web框架_第5页
资源描述:

《Spring5新特性:函数式Web框架》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Spring5新特性:函数式Web框架Spring5.0的第二个里程碑是引入了一个新的函数式web框架。在这篇文章中,我们将给出关于这个框架的更多信息。举例我们先从示例应用程序的一些摘录开始。下面是暴露Person对象的响应信息库。很类似于传统的,非响应信息库,只不过它返回FluxvPerson〉而传统的返回List,以及返回Mono的地方返回Person。Mono用作完成标识:指出何时保存被完成。关于Reactor类型的更多信息,请参阅此博客文章。publicinterfacePersonRepository{Mono<

2、Person>getPerson(intid);FluxallPeople();MonosavePerson(Monoperson);}F面是我们如何暴露带有新的函数式web框架的资源库:汕id“returnResponse.ok().body(fromPublisher(person,Person.class));})n/person11)zFluxpeople=repository.allPeople();returnResponse.ok().body(fromPublisher(people,Per

3、son.class));}))•and(route(POST(^/person11),request->{}));卜面我们要介绍如何运行,比如在ReactorNetty中:HttpHandlerhttpHandler=RouterFunctions.toHttpHandler(route);ReactorHttpHmnd丄erAdapteradapter=newReactorHttpHandlerAdapter(httpHandler);HttpServerserver=HttpServer.create(nlocalhostnz8080);server.start

4、AndAwait(adapter);最后要做的一件事是试一试:$curl1http://localhost:8080/person/11{11name11:,TJohnDoe”.nage11:42}下面还有更多介绍,让我们挖掘得更深!核心组件我会通过彻底说明核心组件来介绍框架:HandlerFunction»RouterFunctionr以及FilterFunction©这三个接口以及文中描述的所有其他类型都可以在org.springframework.web.reactive.function包中找到。HandlerFunction这一新框架的起点是Handler

5、Functiont基本上是Function>,其中Request和Response是新定义的,一成不变的界面友好地来提供JDK-8DSL到底层HTTP消息。对于构建Response实体是一个方便的构建工具,非常类似于在ResponseEntity中看至!J的。对应到HandlerFunction注解是一个带有@RequestMapping的方法。下面是一个简单的"HelloWorld"处理函数的例子,返回有200状态以及body为String的响应消息:HandlerFunctior)helioWorld

6、=request->Response•ok()

7、>)。没有副作用有很多好处:易于测试,编写和优化。RouterFunction传入的请求被路由到有RouterFunction的处理函数(即Function>)路由到处理函数,如果它匹配的话;否则就返回一个空的结果。路由方法与@RequestMapping注解的作用相似。但是,还有一个显著的区别:用注解时路由会被限制到注解的value所能表达的范围,处理这些方法的覆盖是困难的;当用路由方法的时候,代码就在那里,可以轻松的覆盖或替换。下面是一个有内嵌处理函数的路由函数的例子。它看起来有点

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。