优秀文章
一、前言
Spring Flux中的核心DispatcherHandler的处理过程分为三步,其中首步就是通过HandlerMapping接口查找Request所对应的Handler。本文就是通过阅读源码的方式,分析一下HandlerMapping接口的实现者之一——RequestMappingHandlerMapping类,用于处理基于注解的路由策略,把所有用@Controller和@RequestMapping标记的类中的Handler识别出来,以便DispatcherHandler调用的。
HandlerMapping接口的另外两种实现类:1、RouterFunctionMapping用于函数式端点的路由;2、SimpleUrlHandlerMapping用于显式注册的URL模式与WebHandler配对。
一、前言
本文主要介绍基于SpringBoot如何快速上手使用SpringFlux框架开发WEB网站,同时稍微深入地了解以下SpringBoot启动SpringFlux框架的过程。
Spring 5.0在原有的Spring MVC Stack(又称Servlet Stack)以外,又引入了新的WEB开发技术栈——Spring Flux Stack(又称Reactive Stack),以满足不同的应用程序及开发团队的需求。
开发者一直在寻找最适合他们的应用程序的运行时、编程框架及架构。比如,有些用例最适合采用基于同步阻塞IO架构的技术栈,而另一些用例可能更适合于基于Reactive Streams响应式编程原则构建的异步的、非阻塞的技术栈。
后续将有系列文章深入介绍SpringFlux所采用的响应式编程原则及其代表实现ProjectReactor,希望通过系列文章的介绍,让广大读者能够在逐步使用SpringFlux的过程中,理解响应式编程原理及实现,进而能够对项目应该选择SpringMVC还是SpringWebFlux形成自己的判断标准。
这儿讲的平台,是指计算平台(conputing platform),这是一种环境,软件在这种环境里运行。更进一步,云平台,我们把它定义为企业级的云计算化的平台,直接面向业务的软件运行在这个平台上,并且利用这个平台环境,新的业务软件可以迅速被开发出来。云平台涵盖了硬件、运行时代码库、框架、服务及服务管理系统等。
做好云平台,做出一个安全、稳定、高效的,能支持企业级大规模业务处理的云平台,需要哪些基本能力呢?
- 熟悉平台所服务的业务环境
- 掌握软件系统的工作原理
- 拥有架构理论及经验
- 项目管理
- 文档及表达
nginx是一款HTTP和反向代理服务器,是一款通用的TCP/UDP代理服务器,原作者是Igor Sysoev(伊戈尔·西索夫)。
基本HTTP服务器特性
- 静态服务与索引文件、自动索引;打开的文件描述符缓存;
- 带缓存的加速反向代理;负载均衡与容错;
- 对FastCGI、uwsgi、SCGI和memcached服务的加速带缓存支持;负载均衡与容错;
- 模块化结构。过滤器包括gzipping、byte ranges、chunked responses、XSLT、SSI和图片转换过滤器。
- 支持SSL和TLS SNI (关于SNI参考这里)
- 支持HTTP/2,带有权重的(weighted)和基于依赖的优先级(dependency-based priority)
Kryo是用于Java语言的一个快速和高效的对象图序列化框架。Kryo项目的目的是快速、高效、方便地使用API。当需要持久化对象的时候,不论是持久化到文件、数据库还是网络,都可以使用Kryo。
目前Kryo已经到了4.0.1版本以上了。本文的介绍适用于V2.0+以上版本。
安装Kryo
一般适用maven来Kryo包。
使用官方版的Kryo的话可以引用下述配置代码
<dependency>
<groupId>com.esotericsoftware</groupId>
<artifactId>kryo</artifactId>
<version>4.0.1</version>
</dependency>