@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}做得很好?我本来可以想象,斜杠会将请求设置为绝对值,而不管类级别的映射如何,但是它似乎被忽略了。

一个或另一个被认为是更好的做法吗?在Spring文档中,它们似乎 总是 使用斜杠。这样做有什么实际好处吗?

谢谢,

idb。


问题答案:

根据spring文档,具有类级别的@RequestMapping注释意味着所有方法级别的@RequestMappings都将与该类的方法有关。

但是,在某些极少数情况下能够覆盖相对映射可能会很好。