SPring MVC - 多个控制器

时间:2014-10-22 18:30:07

标签: spring spring-mvc design-patterns

我正在为学习目的而开发我的第一个"大" Spring MVC项目。我自己学习所有东西(当然,感谢这个神奇的社区)。

我开始怀疑的是......我的设计"正确/有效"?到目前为止,我正在为每个视图/页面创建一个Controller,因为ModelAttribute s(附加到方法)。

这样好吗?我应该以其他方式开始吗?是否有"官方"这个问题的模式?

1 个答案:

答案 0 :(得分:2)

首先,我假设您正在基于您使用ModelAttribute创建一个Web项目。您想要遵循MVC(模型,视图,控制器)约定。 "模型"是您正在操纵的数据。应通过服务层检索此数据。然后,您的控制器应调用您的服务方法来获取数据,使您的控制器完全不知道您的数据。这很好,因为您可以自由地更改数据结构,例如从MySQL迁移到MongoDB,无需担心更改控制器,您需要更改的只是服务层。此外,这允许控制器在某些情况下使用许多不同的服务。您的控制器接收来自客户端的请求,例如网站用户的页面请求,GET / POST请求等,并执行一些操作,通常通过服务层获取/更新数据,然后返回视图。每个控制器可以接受许多请求,并可以渲染许多视图。按功能分解控制器是一种好习惯。例如,如果您的网站有两个不同的部分,一个用于管理员,一个用于访客,那么您可能希望使用一个控制器来处理管理员请求,另一个用于处理访客请求。每个控制器都可以相应地处理来自管理员/访客的所有请求。你可能对控制器有点困惑。控制器中的每个方法都绑定到单个请求/视图,但控制器可能有许多此类方法。

在您学习的过程中,我建议您探索一些客户端mvc框架,如AngularJS。 Angular允许非常简单的数据绑定和操作选项,并且可以非常轻松地创建RESTful Web服务。