0

对于新项目,我正在寻找要使用的框架。我寻找现有框架的更新。

我发现 Spring MVS 控制器非常有趣,在控制器本身中,您现在可以定义要访问的 URL。最好的是你不需要重写url,这种特性也是有的,即你可以直接给出url,如:

\users\amit\stores\store1

早些时候,我不得不编写 url 重写来实现这种方式,而实际的 url 曾经是这样的:

\StoreDetails?user=amit&store=store1

我发现它非常好。但是再想一想,如果我比较一下,如果我开始将 url 放在控制器本身中,说 1 年后维护起来会不会有点困难,当我对项目进行如此多的修改时,有时,给出的 url to Controller 转为与Controller 的名称无关。

例如在上面的例子中,我可能想搜索存储的详细信息,但是通过 url 我会在 StoreController 等中搜索。

你们建议的是好的做法,使用 xml 或基于注释。如果你们使用基于注释的,你会遇到什么问题吗?

感谢和问候
阿米特

4

2 回答 2

3

Spring MVC 实现了很多预定义的约定。例如,如果您没有@RequestMapping在控制器上明确定义,它会将其映射到类似于控制器名称的 url。例如,如果您的控制器被命名Users,它将自动映射到 url users。如果然后您将类重命名为Customers它将自动映射到 url customers

方法也是如此。

最大的问题是你是否真的想要这个。通常,您不希望您的内部更改(包括类重命名)直接自动影响您提供的 API。

如果您选择明确定义映射,请尝试使用某些约定来组织您的项目,这将简化未来的持续支持。您也可以public static final String在注释中使用 s。所有依赖于 URL 的字符串都可以存储在一个类中,例如:

public interface Mapping {
    public final static String USERS = "users";
    public final static String PERMISSIONS = "permissions";
}

@RequestMapping(Mapping.USERS)
public UserController {
   ............
}
于 2013-07-03T08:50:06.387 回答
1

我会坚持使用注释,它们的定义非常简单,并且很容易使用良好的 IDE 从视图中发现适当的方法。他们的关键是在整个项目中搜索给定的 URL 字符串。

例如,如果我有以下jsp。

<a href="<c:url value="/store/products/${productId}"/>">Store Link</a>

我只会使用 IDE 的搜索功能(在 Eclipse > 文件搜索中)来查找/store/products/ 最有可能在我的搜索结果中包含控制器的内容。如果您对 IDE 搜索功能很狡猾,那么注释映射确实不是问题。

于 2013-07-03T08:46:37.117 回答