跳到主要内容
版本:3.5.10

Mappings(mappings

QWen Max 中英对照 Mappings (mappings) Mappings (mappings)

mappings 端点提供有关应用程序请求映射的信息。

检索映射

要获取映射信息,请向 /actuator/mappings 发起一个 GET 请求,如下列基于 curl 的示例所示:

$ curl 'http://localhost:38589/actuator/mappings' -i -X GET \
-H 'accept-encoding: gzip' \
-H 'user-agent: ReactorNetty/1.2.14' \
-H 'accept: */*'

得到的响应类似于以下内容:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Transfer-Encoding: chunked
Date: Thu, 22 Jan 2026 08:01:12 GMT
Content-Length: 5836

{
"contexts" : {
"application" : {
"mappings" : {
"dispatcherServlets" : {
"dispatcherServlet" : [ {
"handler" : "Actuator root web endpoint",
"predicate" : "{GET [/actuator], produces [application/vnd.spring-boot.actuator.v3+json || application/vnd.spring-boot.actuator.v2+json || application/json]}",
"details" : {
"handlerMethod" : {
"className" : "org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping.WebMvcLinksHandler",
"name" : "links",
"descriptor" : "(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)Ljava/util/Map;"
},
"requestMappingConditions" : {
"consumes" : [ ],
"headers" : [ ],
"methods" : [ "GET" ],
"params" : [ ],
"patterns" : [ "/actuator" ],
"produces" : [ {
"mediaType" : "application/vnd.spring-boot.actuator.v3+json",
"negated" : false
}, {
"mediaType" : "application/vnd.spring-boot.actuator.v2+json",
"negated" : false
}, {
"mediaType" : "application/json",
"negated" : false
} ]
}
}
}, {
"handler" : "Actuator web endpoint 'mappings'",
"predicate" : "{GET [/actuator/mappings], produces [application/vnd.spring-boot.actuator.v3+json || application/vnd.spring-boot.actuator.v2+json || application/json]}",
"details" : {
"handlerMethod" : {
"className" : "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
"name" : "handle",
"descriptor" : "(Ljakarta/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
},
"requestMappingConditions" : {
"consumes" : [ ],
"headers" : [ ],
"methods" : [ "GET" ],
"params" : [ ],
"patterns" : [ "/actuator/mappings" ],
"produces" : [ {
"mediaType" : "application/vnd.spring-boot.actuator.v3+json",
"negated" : false
}, {
"mediaType" : "application/vnd.spring-boot.actuator.v2+json",
"negated" : false
}, {
"mediaType" : "application/json",
"negated" : false
} ]
}
}
}, {
"handler" : "org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointServletDocumentationTests$TestConfiguration$$Lambda$2559/0x00007f1570da2850@7860d5d8",
"predicate" : "(GET && /foo)",
"details" : {
"handlerFunction" : {
"className" : "org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointServletDocumentationTests$TestConfiguration$$Lambda$2559/0x00007f1570da2850"
}
}
}, {
"handler" : "org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointServletDocumentationTests$ExampleController#example()",
"predicate" : "{POST [/], params [a!=alpha], headers [X-Custom=Foo], consumes [application/json || !application/xml], produces [text/plain]}",
"details" : {
"handlerMethod" : {
"className" : "org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointServletDocumentationTests.ExampleController",
"name" : "example",
"descriptor" : "()Ljava/lang/String;"
},
"requestMappingConditions" : {
"consumes" : [ {
"mediaType" : "application/json",
"negated" : false
}, {
"mediaType" : "application/xml",
"negated" : true
} ],
"headers" : [ {
"name" : "X-Custom",
"value" : "Foo",
"negated" : false
} ],
"methods" : [ "POST" ],
"params" : [ {
"name" : "a",
"value" : "alpha",
"negated" : true
} ],
"patterns" : [ "/" ],
"produces" : [ {
"mediaType" : "text/plain",
"negated" : false
} ]
}
}
}, {
"handler" : "ResourceHttpRequestHandler [classpath [META-INF/resources/webjars/]]",
"predicate" : "/webjars/**"
}, {
"handler" : "ResourceHttpRequestHandler [classpath [META-INF/resources/], classpath [resources/], classpath [static/], classpath [public/], ServletContext [/]]",
"predicate" : "/**"
} ]
},
"servletFilters" : [ {
"servletNameMappings" : [ ],
"urlPatternMappings" : [ "/*" ],
"name" : "requestContextFilter",
"className" : "org.springframework.boot.web.servlet.filter.OrderedRequestContextFilter"
}, {
"servletNameMappings" : [ ],
"urlPatternMappings" : [ "/*" ],
"name" : "formContentFilter",
"className" : "org.springframework.boot.web.servlet.filter.OrderedFormContentFilter"
} ],
"servlets" : [ {
"mappings" : [ "/" ],
"name" : "dispatcherServlet",
"className" : "org.springframework.web.servlet.DispatcherServlet"
} ]
}
}
}
}

响应结构

响应包含应用程序映射的详细信息。响应中找到的项取决于 Web 应用程序的类型(响应式或基于 Servlet)。下表描述了响应中常见元素的结构:

路径类型描述
contextsObject以 id 为键的应用程序上下文。
contexts.*.mappingsObject上下文中的映射,以映射类型为键。
contexts.*.mappings.dispatcherServletsObjectDispatcher servlet 映射(如果存在)。
contexts.*.mappings.servletFiltersArrayServlet 过滤器映射(如果存在)。
contexts.*.mappings.servletsArrayServlet 映射(如果存在)。
contexts.*.mappings.dispatcherHandlersObjectDispatcher handler 映射(如果存在)。
contexts.*.parentIdString父应用程序上下文的 id(如果存在)。

contexts.*.mappings 中可能包含的条目将在以下各节中描述。

Dispatcher Servlets 响应结构

当使用 Spring MVC 时,响应中包含 contexts.*.mappings.dispatcherServlets 下所有 DispatcherServlet 请求映射的详细信息。下表描述了响应中该部分的结构:

路径类型描述
*ArrayDispatcher servlet 的映射(如果有),以 dispatcher servlet 的 bean 名称为键。
*.[].detailsObject关于该映射的额外实现细节。可选。
*.[].handlerString该映射的处理器。
*.[].predicateString该映射的谓词。
*.[].details.handlerFunctionObject处理此映射请求的函数(如果有)的详细信息。
*.[].details.handlerFunction.classNameString函数所属类的全限定名。
*.[].details.handlerMethodObject处理此映射请求的方法(如果有)的详细信息。
*.[].details.handlerMethod.classNameVaries方法所属类的全限定名。
*.[].details.handlerMethod.nameVaries方法名称。
*.[].details.handlerMethod.descriptorVaries方法的描述符,遵循 Java 语言规范中的定义。
*.[].details.requestMappingConditionsObject请求映射条件的详细信息。
*.[].details.requestMappingConditions.consumesVariesconsumes 条件的详细信息。
*.[].details.requestMappingConditions.consumes.[].mediaTypeVaries所消费的媒体类型。
*.[].details.requestMappingConditions.consumes.[].negatedVaries媒体类型是否被取反。
*.[].details.requestMappingConditions.headersVariesheaders 条件的详细信息。
*.[].details.requestMappingConditions.headers.[].nameVaries请求头名称。
*.[].details.requestMappingConditions.headers.[].valueVaries请求头所需的值(如果有)。
*.[].details.requestMappingConditions.headers.[].negatedVaries值是否被取反。
*.[].details.requestMappingConditions.methodsVaries所处理的 HTTP 方法。
*.[].details.requestMappingConditions.paramsVariesparams 条件的详细信息。
*.[].details.requestMappingConditions.params.[].nameVaries参数名称。
*.[].details.requestMappingConditions.params.[].valueVaries参数所需的值(如果有)。
*.[].details.requestMappingConditions.params.[].negatedVaries值是否被取反。
*.[].details.requestMappingConditions.patternsVaries该映射所处理路径的模式。
*.[].details.requestMappingConditions.producesVariesproduces 条件的详细信息。
*.[].details.requestMappingConditions.produces.[].mediaTypeVaries所生成的媒体类型。
*.[].details.requestMappingConditions.produces.[].negatedVaries媒体类型是否被取反。

Servlets 响应结构

使用 Servlet 栈时,响应中包含 contexts.*.mappings.servlets 下所有 Servlet 映射的详细信息。下表描述了响应中该部分的结构:

PathTypeDescription
[].mappingsArrayServlet 的映射。
[].nameStringServlet 的名称。
[].classNameStringServlet 的类名。

Servlet Filters 响应结构

当使用 Servlet 栈时,响应中包含 contexts.*.mappings.servletFilters 下所有 Filter 映射的详细信息。下表描述了响应中该部分的结构:

路径类型描述
[].servletNameMappingsArray过滤器所映射到的 Servlet 名称。
[].urlPatternMappingsArray过滤器所映射到的 URL 模式。
[].nameString过滤器的名称。
[].classNameString过滤器的类名。

Dispatcher Handlers 响应结构

使用 Spring WebFlux 时,响应中会包含 contexts.*.mappings.dispatcherHandlers 下所有 DispatcherHandler 请求映射的详细信息。下表描述了响应中该部分的结构:

路径类型描述
*ArrayDispatcher 处理器映射(如果有的话),以 dispatcher 处理器 bean 名称为键。
*.[].detailsObject关于映射的额外实现特定细节。可选。
*.[].handlerString映射的处理器。
*.[].predicateString映射的谓词。
*.[].details.requestMappingConditionsObject请求映射条件的详细信息。
*.[].details.requestMappingConditions.consumesVariesconsumes 条件的详细信息
*.[].details.requestMappingConditions.consumes.[].mediaTypeVaries被消费的媒体类型。
*.[].details.requestMappingConditions.consumes.[].negatedVaries媒体类型是否被取反。
*.[].details.requestMappingConditions.headersVariesheaders 条件的详细信息。
*.[].details.requestMappingConditions.headers.[].nameVariesheader 的名称。
*.[].details.requestMappingConditions.headers.[].valueVariesheader 所需的值(如果有)。
*.[].details.requestMappingConditions.headers.[].negatedVaries该值是否被取反。
*.[].details.requestMappingConditions.methodsVaries被处理的 HTTP 方法。
*.[].details.requestMappingConditions.paramsVariesparams 条件的详细信息。
*.[].details.requestMappingConditions.params.[].nameVaries参数的名称。
*.[].details.requestMappingConditions.params.[].valueVaries参数所需的值(如果有)。
*.[].details.requestMappingConditions.params.[].negatedVaries该值是否被取反。
*.[].details.requestMappingConditions.patternsVaries标识该映射所处理路径的模式。
*.[].details.requestMappingConditions.producesVariesproduces 条件的详细信息。
*.[].details.requestMappingConditions.produces.[].mediaTypeVaries生成的媒体类型。
*.[].details.requestMappingConditions.produces.[].negatedVaries媒体类型是否被取反。
*.[].details.handlerMethodObject将处理此映射请求的方法(如果有的话)的详细信息。
*.[].details.handlerMethod.classNameString方法所在类的全限定名。
*.[].details.handlerMethod.nameString方法的名称。
*.[].details.handlerMethod.descriptorString按照《Java 语言规范》指定的方法描述符。
*.[].details.handlerFunctionObject将处理此映射请求的函数(如果有的话)的详细信息。
*.[].details.handlerFunction.classNameString函数所在类的全限定名。