在Spring MVC中生成路由的推荐方法有哪些?

时间:2011-04-19 19:51:31

标签: java model-view-controller spring spring-mvc

在基于java的Spring MVC webapp中生成路由的推荐方法有哪些?我想避免整个应用程序中的硬编码路径。

2 个答案:

答案 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?

此外,一旦您选择了网址,它们就会被修复,因为它们代表了与客户端的接口,而更改它们可能意味着破坏向后兼容性。

并不是说我认为一个带有一堆静态最终字符串的课程就是那么糟糕,我只是觉得它几乎没必要。