jav*_*999 8 java model-view-controller service spring spring-mvc
我理解MVC模式以及Spring MVC如何实现它.
然而,怎么做Rest controller,Data Access Layer并Service Layer适合这种模式?
是吗:
Model = Database(例如Oracle/MySQL)和Repositories类
Controller = Service(商务逻辑)和休息Controller类
查看 = JSP/ FreeMarker?
Ken*_*kov 17
模型 - 不是数据库,不是存储库,不是实体.模型是抽象,包含需要显示的所有数据.每个人都View拥有自己的模特.你可以考虑Model作为数据容器之间的Controller和View.
Spring模型是ModelMap控制器方法的参数.
控制器 - 准备Model,传递给View.如果模型非常简单,Controller可以单独完成.
但是大多数模型都包含大量数据.这可以是来自数据库的多个实体,来自配置的数据等.在这种情况下,Controller使用较低级别的层:Service, Repository. 他们都帮助?ontroller建立模型View.
upd:这是Controller连接View和的目的Model.Controller创建并填充Model,然后选择View并将此创建传递Model给View.这就是Model和View获得连接的方式.
在Spring中,控制器是Controller和RestController.
视图 - 是最终点,来自Model(传递Controller)的数据将显示给用户.但另一个角色View是从用户获取命令,并将其传递给Controller.
在Spring中,这可能是任意视图引擎的:JSP,Freemaker,Thymeleaf.
注意:通常,Controller不Repository直接使用.传统上,Controller使用Service和Service用于Repository从数据库获取数据.关系如下:View< - Controller- > Service- >Repository
控制器接受 HTTP 请求并经常加载或保存一些数据(来自服务或 DAO),并返回 HTTP 响应。此响应可以是重定向、视图、某些 JSON 或二进制文件。
控制器可以使用服务,但应避免拥有太多自己的逻辑。如果不需要服务逻辑,它也可以直接使用数据访问对象。
模型是视图完成其工作所需的任何信息。它不一定与数据库相关。例如,您可以在注册表单中有一个模型,其中包含电子邮件地址和确认电子邮件地址字段。您不会在数据库中存储 confirmEmailAddress 字段,因此它们在数据库表和模型之间没有一对一的关系。此外,您的模型可能是用于不持久化的简单计算的数据。
| 归档时间: |
|
| 查看次数: |
8206 次 |
| 最近记录: |