在基于java的Spring MVC webapp中生成路由的推荐方法有哪些?我想避免整个应用程序中的硬编码路径。
答案 0 :(得分:2)
假设我们正在讨论路径RequestMappings等。
在我的应用程序中,我有一个带有一堆public static final
常量的类,我在@RequestMapping注释中引用它。
因此常量可能如下所示:
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;
}
他们很容易改变,因为他们都在一个地方。
答案 1 :(得分:-1)
您说您希望避免整个应用程序中的硬编码路径,但通常所有控制器(以及所有url映射)都驻留在一个目录中。例如,如果你有一个maven结构,他们就会像src / main / java / com / mycompany / myapp / web / controllers /那样。您是否想过自己曾经问过这样一个问题:“我在哪里为/ myapp / v1 /搜索端点设置了url映射?”,并且无法弄清楚它位于/ src / main / java / com / mycompany中/myapp/web/controllers/V1SearchController.java?
此外,一旦您选择了网址,它们就会被修复,因为它们代表了与客户端的接口,而更改它们可能意味着破坏向后兼容性。
并不是说我认为一个带有一堆静态最终字符串的课程就是那么糟糕,我只是觉得它几乎没必要。