Обработка предварительной косой черты в @RequestMapping


Представьте, что у меня есть контроллер Spring MVC примерно так:

@Controller
@RequestMapping("/base-url")
public class MyController{

    //..snip
    @RequestMapping(method=RequestMethod.GET, value="/edit/{id}")
    public String edit(Model model, HttpServletRequest request, Authentication authentication){
        //..snip
    }
}

Мой вопрос касается внутреннего параметра value к аннотации @RequestMapping на уровне функции. Требуется ли предварительная косая черта на /edit/{id}, или edit/{id} делает работу так же хорошо? Я бы предположил, что предварительная косая черта установит запрос абсолютным, независимо от сопоставления уровня класса, но, похоже, он игнорируется.

Считается ли та или иная практика лучшей? на весну документация, они, кажется, Всегда используют предварительную косую черту. Есть ли в этом практическая польза?

Спасибо,

[5] ИБР.
2 4

2 ответа:

Согласно документации spring, наличие аннотации класса level @RequestMapping подразумевает, что все методы level @RequestMappings будут относиться к классу'.

Однако было бы неплохо иметь возможность переопределять относительные отображения в некоторых редких случаях.

Лично я предпочитаю добавлять предварительную косую черту в значение @RequestMapping. На уровне кода Вы можете видеть: если значение не начинается с/, То Spring (DefaultAnnotationHandlerMapping) добавит его. Подробный ответ вы можете посетить: Используйте или не используйте косую черту в значении для @RequestMapping. Нужны официальные документы или указать источник весны?