Spring MVC 1-0-1

在spring MVC中,模型是由Spring MVC的model或modelAndView封装的简单map.他可以来源于数据库,文件,外部服务等,这取决于你如何获取数据并将其放到模型中.与数据称进行交互的推荐方式是使用Spring Data库:spring data JPA,spring data MongoDB等.有10多个与Spring data相关的项目.
spring MVC的控制层是通过使用@controller注解来进行处理的.在web应用中,控制器的角色是相应HTTP请求.带有@controller注解的类将会被Spring检索到,并且能够有机会处理传入的请求.
通过使用@requestMapping注解,控制器能够声明他们会根据HTTP方法(如GET或POST方法)和URL来处理特定的请求.控制器就可以确定是在WEB相应中直接写入内容,还是将应用路由由一个视图并将属性注入到该视图中.
纯粹的RESTful应用将会选择第一种方式,并且会在HTTP响应中直接暴露模型的JSON或XML表述,这需要用到@ResponseBody注解.在web应用中,这种类型的架构通常会与前端JavaScript框架关联,如backbone.js,angularJS或React.在这种场景中,Spring应用只需处理MVC中的模型层,我们将会在第4章学习这种架构.
在第二种方式中,模型会传递到视图中,视图会由模版引擎进行渲染,并写入到响应之中.
视图通常会与某种模版方言关联,这种模版允许遍历模型中的内容,流行的模版方言包括JSP,FREEMARKER或THYMELEAF.
混合式的方式则会在某些方面采用模版引擎与应用进行交互,并将视图层委托给前端框架.