浅谈 Spring MVC

Spring MVC

以下内容来自英语未过四级的官网翻译结果,酌情取舍
官网地址

Spring MVC

  • Spring MVC 框架围绕找 DispatcherServlet 来设计的,它能传递请求,并且可以配置映射控制器(Handler mappings)、视图解析(view resoution)、本地和主题模板解析(local and )以及支持文件上传。默认控制器基于@Controller 和 @RequestMapping注解,提供广范围的方法控制。在Spring 3.0中,@Controller 机制也允许你创建 Restful Web网站和应用,通过@PathVariable 注解和其他特性

  • 在Spring MVC 和Spring 中一个关键的设计准则是“对扩展开放,对修改关闭”
    在Spring MVC 的核心类的一些方法被设计成final,作为一个开发者你不能覆盖这些方法来提供你自己的行为。这个思想还没有武断的做完,但是要特别牢记这个准则
    当你使用Spring MVC,你不能去 AOP一个final方法;

  • 在Spring Web MVC中,你可以使用任何对象作为控制或者封装返回对象;你不需要实现框架特殊的接口或者基类。Spring 的数据绑定高度灵活,比如,通过应用程序可以评估没有匹配的的类型,看作是验证错误,而不是系统错误。因此你不需要在简单表单对象复制你的业务对象属性为简单的、没有类型指定的字符类型,只是为了无效提交,或是转为适当的字符串。它可以经常更好的直接绑定你的业务对象。

  • Spring 的视图解析非常灵活,一个Controller通常负责一个数据的Map模型和选择视图的名字,但是它也可以向相应流直接写入完成请求。视图名字解析高度可配,通过文件拓展,接受请求头Content type转让,通过bean的名字,一个适当的文件,或者甚至一个自定义的ViewResolver实现.MVC 中的 M 是一个 Map接口,允许完全的视图技术抽象。你可以基于绑定技术来直接完成,比如JSP、Veelcity和Freemarker,或者直接生成XML、JSON、Atom和其他内容的类型。M 只是简单的翻译成适当的格式,比如JSP的请求的attributes,一个Velocity模板模型

Spring MVC的特性

  • Spring 页面流
  • Spring Web Flow(SWF)目标成为在web应用页面流管理的最好解决。
  • SWF整合了在Servlet和portlet环境下存在的Spring MVC 框架,Struts,和JSF框架。如果你有一个业务过程,作为相反的转换模型到纯 request模型而获益,那么SWF可能是这种解决方案。
  • SWF允许您将逻辑页面流捕获为可在不同情况下重用的自包含模块,因此非常适合构建web应用程序模块,以引导用户通过驱动业务流程的受控导航

Spring meb 模型包括许多唯一的web支持特性

  • 1.清楚的角色分工

  • 2.强大的、简单的框架和应用配置类作为Java的Bean对象。

  • 3.适配能力,非侵入性,灵活型。

  • 4.可以重复利用的业务代码

  • 5.自定义绑定和校验

  • 6.自定义映射控制器和视图解析

  • 7.灵活的模型转换

  • 8.自定义的本地和主题解析,支持JSP、JSTL、Velocity等等

  • 9.写JSP页面就更简单

  • 10.在当前HTTP请求或者HTTPSession的Bean生命周期管理

3. DispatcherServlet

  • Spring的MVC框架,像其他Web MVC框架一样,请求驱动,设计围绕着一个主要的Servlet,传递请求到Controllers,提供其他促进Web应用程序开发功能。Spring 的 DispatcherServlet做的更多,它被Spring IOC完全整合,因此允许你使用每个其他Spring有的特性
    DispatcherServlet是一个真是的Servlet(从HttpServlet继承而来),因此定义在你的web.xml中。你需要映射你希望DispatcherServlet处理的请求,同样在web.xml通过使用URL mapping设置。这是Java EE Servlet 的配置,下面是一个例子展示DispathcerServlet的声明和映射
    在这里插入图片描述
    编码

  • 改变maven项目为Spring mvc 项目
    1.选中项目F4,创建webapp目录
    在这里插入图片描述

  • 2.修改web.xml地址
    src\main\webapp\WEB-INF\web.xml
    在这里插入图片描述

  • 3.项目目录为:
    在这里插入图片描述

  • 4.添加webmvc依赖、在resource目录下创建
    applicationContext.xml
    springmvc-servlet.xml
    在这里插入图片描述
    在这里插入图片描述
    applicationContext.xml
    在这里插入图片描述
    springmvc-servlet.xml ,视图解析器和anotation-driven
    在这里插入图片描述
    至此一个 Web MVC项目创建完毕

  • 5.验证MVC
    创建hello.jsp,路径为:webapp/WEB-INF/jsps/hello.jsp
    在这里插入图片描述
    在这里插入图片描述

  • 6.创建HelloController验证mvc
    在这里插入图片描述
    7.配置本地tomcat
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    启动项目
    在这里插入图片描述
    访问hello接口,
    在这里插入图片描述
    经过了控制层、视图层

JSON增删改查

  • 1.引入fastjson
    在这里插入图片描述

  • 2.配置 fastjson 的转换器(converter)
    -

  • 3.controller类
    在这里插入图片描述

  • 4 service类
    在这里插入图片描述

  • 5.dao类
    在这里插入图片描述

  • 6.自定义返回封装类
    在这里插入图片描述

  • 7.模拟数据库类
    在这里插入图片描述

  • 8.重启项目,使用 Postman 请求测试
    查询:
    在这里插入图片描述
    新增
    在这里插入图片描述
    新增后再次查询
    在这里插入图片描述
    删除(用id删除关羽)
    在这里插入图片描述
    删除后再次查询
    在这里插入图片描述
    修改(修改刘备名字为刘备备)
    在这里插入图片描述
    修改后查询
    在这里插入图片描述

代码 github 下载地址

ioc aop mvc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值