Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
65e01eab
S
spring-framework
项目概览
爱吃血肠
/
spring-framework
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-framework
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
65e01eab
编写于
9月 20, 2016
作者:
J
Juergen Hoeller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
DispatcherHandler.toWebHandler/toHttpHandler convenience methods
上级
5b33e02f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
38 addition
and
5 deletion
+38
-5
spring-web-reactive/src/main/java/org/springframework/web/reactive/DispatcherHandler.java
...a/org/springframework/web/reactive/DispatcherHandler.java
+38
-5
未找到文件。
spring-web-reactive/src/main/java/org/springframework/web/reactive/DispatcherHandler.java
浏览文件 @
65e01eab
...
...
@@ -25,16 +25,17 @@ import org.apache.commons.logging.LogFactory;
import
reactor.core.publisher.Flux
;
import
reactor.core.publisher.Mono
;
import
org.springframework.beans.BeansException
;
import
org.springframework.beans.factory.BeanFactoryUtils
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContextAware
;
import
org.springframework.core.annotation.AnnotationAwareOrderComparator
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.server.reactive.HttpHandler
;
import
org.springframework.http.server.reactive.ServerHttpRequest
;
import
org.springframework.web.server.ResponseStatusException
;
import
org.springframework.web.server.ServerWebExchange
;
import
org.springframework.web.server.WebHandler
;
import
org.springframework.web.server.adapter.HttpWebHandlerAdapter
;
/**
* Central dispatcher for HTTP request handlers/controllers. Dispatches to registered
...
...
@@ -57,13 +58,13 @@ import org.springframework.web.server.WebHandler;
*/
public
class
DispatcherHandler
implements
WebHandler
,
ApplicationContextAware
{
private
static
final
Log
logger
=
LogFactory
.
getLog
(
DispatcherHandler
.
class
);
@SuppressWarnings
(
"ThrowableInstanceNeverThrown"
)
private
static
final
Exception
HANDLER_NOT_FOUND_EXCEPTION
=
new
ResponseStatusException
(
HttpStatus
.
NOT_FOUND
,
"No matching handler"
);
private
static
final
Log
logger
=
LogFactory
.
getLog
(
DispatcherHandler
.
class
);
private
List
<
HandlerMapping
>
handlerMappings
;
private
List
<
HandlerAdapter
>
handlerAdapters
;
...
...
@@ -71,16 +72,24 @@ public class DispatcherHandler implements WebHandler, ApplicationContextAware {
private
List
<
HandlerResultHandler
>
resultHandlers
;
/**
* Create a new {@code DispatcherHandler} which needs to be configured with
* an {@link ApplicationContext} through {@link #setApplicationContext}.
*/
public
DispatcherHandler
()
{
}
/**
* Create a new {@code DispatcherHandler} for the given {@link ApplicationContext}.
* @param applicationContext the application context to find the handler beans in
*/
public
DispatcherHandler
(
ApplicationContext
applicationContext
)
{
initStrategies
(
applicationContext
);
}
@Override
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
throws
BeansException
{
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
{
initStrategies
(
applicationContext
);
}
...
...
@@ -135,7 +144,7 @@ public class DispatcherHandler implements WebHandler, ApplicationContextAware {
}
private
HandlerResultHandler
getResultHandler
(
HandlerResult
handlerResult
)
{
for
(
HandlerResultHandler
resultHandler
:
resultHandlers
)
{
for
(
HandlerResultHandler
resultHandler
:
this
.
resultHandlers
)
{
if
(
resultHandler
.
supports
(
handlerResult
))
{
return
resultHandler
;
}
...
...
@@ -143,4 +152,28 @@ public class DispatcherHandler implements WebHandler, ApplicationContextAware {
throw
new
IllegalStateException
(
"No HandlerResultHandler for "
+
handlerResult
.
getReturnValue
());
}
/**
* Expose a dispatcher-based {@link WebHandler} for the given application context,
* typically for further configuration with filters and exception handlers through
* a {@link org.springframework.web.server.adapter.WebHttpHandlerBuilder}.
* @param applicationContext the application context to find the handler beans in
* @see #DispatcherHandler(ApplicationContext)
*/
public
static
WebHandler
toWebHandler
(
ApplicationContext
applicationContext
)
{
return
new
DispatcherHandler
(
applicationContext
);
}
/**
* Expose a dispatcher-based {@link HttpHandler} for the given application context,
* typically for direct registration with an engine adapter such as
* {@link org.springframework.http.server.reactive.ReactorHttpHandlerAdapter}.
* @param applicationContext the application context to find the handler beans in
* @see #DispatcherHandler(ApplicationContext)
* @see HttpWebHandlerAdapter
*/
public
static
HttpHandler
toHttpHandler
(
ApplicationContext
applicationContext
)
{
return
new
HttpWebHandlerAdapter
(
new
DispatcherHandler
(
applicationContext
));
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录