在基于Java的Spring MVC Web应用程序中,生成路由的推荐方法是什么?我希望避免在整个应用程序中硬编码路径。
public class Pages {
public static final String FOO_URL "foo/foo.action"
public static final String FOO_VIEW "test/foo"
public static final String BAR_URL "bar/bar.action"
public static final String BAR_VIEW "test/bar"
}
然后在你的控制器中,你可以像这样引用它们:
@RequestMapping(value=Pages.FOO_URL, method=RequestMethod.GET)
public String handleFoo(Model model) {
return Pages.FOO_VIEW;
}
由于它们都在一个位置,因此更改它们非常容易。
你说你想避免在整个应用程序中硬编码路径,但通常所有的控制器(因此所有的URL映射)都驻留在一个目录中。例如,如果你有一个Maven结构,它们会在类似于src/main/java/com/mycompany/myapp/web/controllers/的地方。你是否想象过自己会问这样的问题:“我把/myapp/v1/search端点的URL映射放在哪里了?”,然后找不到它在/src/main/java/com/mycompany/myapp/web/controllers/V1SearchController.java中?
另外,一旦你选择了URL,它们就几乎是固定的,因为它们代表着与客户端的接口,改变它们可能意味着破坏向后兼容性。
并不是我认为一个带有一堆静态final字符串的类很糟糕,我只是认为它大多数情况下是不必要的。