使用或不使用@RequestMapping的值的斜杠.需要官方文档或指向Spring源码?

gav*_*koa 24 java spring spring-mvc

我参与了项目,在那里我发现了以下各项:

@RequestMapping(value = "events/...");
@RequestMapping(value = "/events/...");

(在方法级别注释之前使用和不使用斜杠).

我执行搜索:

site:http://static.springsource.org/spring/docs/3.1.x  slash

并阅读这些链接:

但这些消息来源都没有回答为什么允许跳过斜线.官方Spring文档总是以斜线显示示例...

需要指向官方文档或Spring资源.

Ral*_*lph 43

没关系:如果路径没有以一个/Spring 开始(DefaultAnnotationHandlerMapping)将添加它.

请参阅String[] determineUrlsForHandler(String beanName)类别DefaultAnnotationHandlerMapping第122行(春季3.1.2)的方法(即类级别)

String[] methodLevelPatterns = determineUrlsForHandlerMethods(handlerType, true);
for (String typeLevelPattern : typeLevelPatterns) {
    if (!typeLevelPattern.startsWith("/")) {
            typeLevelPattern = "/" + typeLevelPattern;
    }
Run Code Online (Sandbox Code Playgroud)

请参阅String[] determineUrlsForHandler(Class<?> handlerType, final boolean hasTypeLevelMapping))类别DefaultAnnotationHandlerMapping第182行(Spring 3.1.2)的方法(即方法级别)

String[] mappedPatterns = mapping.value();
if (mappedPatterns.length > 0) {
for (String mappedPattern : mappedPatterns) {
    if (!hasTypeLevelMapping && !mappedPattern.startsWith("/")) {
        mappedPattern = "/" + mappedPattern;
    }   
Run Code Online (Sandbox Code Playgroud)