Spring Web MVC框架围绕着DispatcherServlet设计的,具有可配置的处理映射,视图解析,本地化和主题解析,同时支持上传文件,DispatcherServlet分派每一个请求给处理器处理。默认的处理器是基于注解@Controller和@RequestMapping,提供了很灵活的处理方法。根据Spring MVC3.0的介绍,@Controller机制通过注解@PathVariable和其他的特征允许我们创建RESTful的站点和应用程序。
Spring Web MVC中,可以使用任何的对象作为命令对象或者表单对象,不用实现框架指定的接口或者基类。Spring的数据绑定具有很高的灵活性,比如处理类型匹配错误作为应用程序表达的校验错误,而不是系统错误。我们不需要在表单对象中重复映射业务对象简单的,非类型化的String属性来处理无效的提交或者转化成合适的Strings。相反,spring 直接绑定属性到业务对象上。
Spring的视图解析方案也是很灵活的,Controller有责任为模型Map准备数据,选择视图名称或者直接写响应流进而完成请求。通过文件扩展或者Accept header中的内容类型协约,通过bean名称,属性文件,甚至自定义的ViewResolver实现,视图解析方案具有很高的可配置性。模型(model,指MVC中的是Map接口,作为视图技术的纯抽象。我们可以和基于渲染技术的模板直接整合。比如Jsp,Velocity , Freemarker,或者直接生成XML,JSON,Atom及其其他类型的内容。
Spring的web模块包含很多唯一的web支持特征:
清晰的角色分离:每一个角色,控制器,校验器,命令对象,表单对象,模型对象,DispatcherServlet,处理器映射,视图解析器等等都有各自分离的对象实现。
框架和应用程序JavaBean类很强大的,直接的配置
适应性,非侵入性,灵活性:对于给定的场景,定义所需的控制器方法签名,仅可能需要参数注解(@RequestParam, @RequestHeader,@PathVariable等等)
重用的业务代码:使用已存在的业务对象作为命令对象或者表单对象,而不是复制他们来继承指定框架的基类。
可定制的绑定和校验:类型匹配错误作为应用级别的错误,保存着令人厌烦的错误值,本地化日期和数据绑定等等,而不是解析或者转化成业务对象的仅仅是string的表单对象。
可定制的处理器映射和视图解析方案:处理器映射和视图解析策略从简单的基于URL配置变化到复制的构建目的的解决策略。
灵活的模型转化:名值map的模型转化器很容易和其他的视图技术整合。
可定制的本地和主题解析方案:支持JSP,无论是否使用spring标签,支持JSTL,支持Velocity等等
beans的生命周日被定义在当前的HTTP请求或者HTTP session中。这个不是spring MVC本身的特定的特征,而是WebApplicationContext容器的特征。这些bean的作用域被描述于Request, session, and global session scopes中。
spring MVC框架介绍
最新推荐文章于 2024-09-07 15:22:27 发布