这个自动配置与DispatcherServletAutoConfiguration相对应;HttpHandler是WebFlux环境下的核心处理器类。,其中这里的WebHttpHandlerBuilder.applicationContext(this.applicationContext).build()代码就是用来构建HttpWebHandlerAdapter对象。,核心处理类 HttpWebHandlerAdapter。,一个请求是如何通过上面的HttpWebHandlerAdapter执行调用处理的?,容器在启动执行refresh核心方法:,getDelegate方法返回的调用的是父类WebHandlerDecorator方法:,这里的delegate是谁?,通过上面的源码应该非常清楚HttpWebHandlerAdapter对象创建的过程及该对象都会写什么东西。,到此你应该清楚了,上面一开始说的getDelegate()方法返回的就是ExceptionHandlingWebHandler对象。,在这里的DelegatingWebFluxConfiguration的父类。,WebFluxConfigurationSupport中创建了webHandler名称的DispatcherHandler对象。,到此HttpWebHandlerAdapter#handle中执行的getDelegate方法返回的是ExceptionHandlingWebHandler对象。,接下来就是执行ExceptionHandlingWebHandler的handle方法了。,其实接下来的过程就和Spring WebMVC的执行大致相同。,通过HandlerAdapter调用处理程序的返回值被包装为HandlerResult,并传递给声称支持它的第一个HandlerResultHandler。下表显示了可用的HandlerResultHandler实现,所有这些实现都在WebFlux配置中声明:,
© 版权声明
文章版权归作者所有,未经允许请勿转载。