spring request映射和url映射有什么区别?


问题内容

在调试模式下阅读我的spring boot应用程序的日志后,我偶然发现了这个问题。

在启动时,While的春天RequestMappingHandlerMapping是“在应用程序上下文中查找请求映射”,并找到在我的控制器上定义的resquest映射。后来出现的BeanNameUrlHandlerMapping是“在应用程序上下文中查找URL映射”,并且无法为我的上下文中定义的每个bean找到一个(未标识URL路径)

我的问题是,请求映射和url映射之间的区别是什么,有人可以链接文档以阅读所需内容BeanNameUrlHandlerMapping吗?


问题答案:

RequestMappingHandlerMapping

根据文档,RequestMappingHandlerMapping

根据@Controller类中的类型和方法级别的@RequestMapping批注创建RequestMappingInfo实例。

一个RequestMappingInfo可以通过构造函数实例:

public RequestMappingInfo(String name,
                          PatternsRequestCondition patterns,
                          RequestMethodsRequestCondition methods,
                          ParamsRequestCondition params,
                          HeadersRequestCondition headers,
                          ConsumesRequestCondition consumes,
                          ProducesRequestCondition produces,
                          RequestCondition<?> custom)

并表示具有一组要匹配的条件的请求。

BeanNameUrlHandlerMapping

BeanNameUrlHandlerMapping时是:

HandlerMapping接口的实现,该接口从URL映射到名称以斜杠(“ /”)开头的bean,

作为AbstractDetectingUrlHandlerMapping为:

通过内省应用程序上下文中所有已定义的Bean来检测处理程序Bean的URL映射。