Spring MVC 3.0控制器和解析器

时间:2012-10-05 06:01:18

标签: spring spring-mvc

如果有人可以就此分享他们的想法,我将非常感激。我是Spring的新手,但对MVC来说并不陌生。然而,我对MVC的曝光主要是在前端方面。

假设我有一个使用SpringMVC Framework 3.0的动态网站,并且网站有5个链接,例如:

首页|家庭|喜剧| HORROR | ACTION

这些链接中的每一个都将查询数据库并显示信息。如果我是通过MVC框架为前端做这个,我会有五个不同的控制器,但我在这里遇到一个问题(Stackoverflow),它谈到只有一个控制器,然后是许多解析器。我想知道什么是正确的方法?

以下是上述问题的链接: Spring controller setup question?

3 个答案:

答案 0 :(得分:2)

正如Jaanas所说,这实际上取决于您如何检索每个链接的数据,以及生成的页面是否都基于相同的数据模型和模板(JSP),或者彼此完全不同。

我倾向于为“home”使用单独的控制器,但如果那些其他页面只是查询数据库,那么我将开始从单个控制器提供服务。

根据REST原则尝试思考您的页面也是一个好主意。一旦你开始看到REST URI的链接,那么各种URI是否进入相同或不同的控制器的决定是显而易见的。例如。如果“家庭”的URI为/movie/genre/family,那么很明显所有这4个链接都应该放在GenreController类(或MovieController类中,{{1}使用@PathVariable annotation)捕获类别的方法。

答案 1 :(得分:1)

这取决于每个链接背后有多少逻辑。如果每个控制器中只有一个映射,则可以使用单个控制器。

那就是说,我还是喜欢拥有单独的控制器,只做像你这样的小项目。

另一方面,如果您的项目扩展,您可能最终会得到荒谬的控制器数量,但这并没有太大作用。在这种情况下,您可以从一开始就对控制器进行分组,因此将类似的控制器分组,这些控制器具有几乎相同的逻辑端。

答案 2 :(得分:1)

应用程序中的控制器数量取决于项目的范围。如果您有固定的要求且操作次数有限,那么您可以使用单个控制器来处理您的所有请求。

但是,如果您的要求未得到修复或将随应用程序版本增加,则必须为单独的模块使用单独的控制器。因此,将来您可以轻松管理应用程序代码。

为了更好的代码维护,我更喜欢为每个模块使用单独的控制器。