初识Spring MVC

授课老师:720科技张森鹏

知识笔记:

一、用途:

是Spring框架中用于Web应用快速开发的一个模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。

二、Spring MVC优点:

它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架,对于初学者或者想了解mvc的人来说我觉得 spring是最好的,它的实现就是教科书!第二它和tapestry一样是一个纯正的servlet系统,这也是它和tapestry相比 struts所没有的优势。而且框架本身有代码,而且看起来也不费劲比较简单可以理解。

重要笔记:

三、Spring MVC:

之前的项目比较简单,多是用JSP 、Servlet + JDBC 直接搞定,去年开始在项目中尝试用 Struts(Spring MVC)+Spring+Hibernate, 严格按照分层概念驱动项目开发,因项目需求一直不断变化,功能不断扩充、增强,技术构建也几经改变到目前有个稳定的应用,体会了很多感受,这次先对 Spring MVC 层进行一些个人总结。

MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,C(控制器)将V(视图、用户客户端)与M(模块,业务)分开构成了MVC ,这边不去讨论项目中是否应用MVC ,也不针对MVC的实现原理进行讲解,而是探讨实践中如何从应用SSH, 到Spring MVC + Spring+Hibernate的演化过程。

MVC是SSH的框架的基础

先看 Struts 如何与 Spring 结合处理一次简单的请求响应代码,前台可以设为用 AJAX 调用:

1. 在 struts-config.xml 文件中加入

<!--用于声明GetPersonList。do请求委托Spring处理-->

<action path="/GetPersonList" scope="request"

type="org.springframework.web.struts.DelegatingActionProxy">

</action>

2.在 applicationContext.xml 文件中加入

<!-- 指定GetPersonList处理的代码,和注入实现业务的代码 -->

<bean name="/GetPersonList" class="cn.base.GetPersonListAction">

<property name="getPersonList" ref=" getPersonListServices"></property>

</bean>

3.cn.base.GetPersonListAction 实现请求响应代码

可以看出一次请求需求如此多的步骤,在加上一个项目下来有很多这样的请求响应,将给配置文件管理带来很大的麻烦。

经过对 Spring 的深入应用, Spring 本身提供的 URL 请求控制,对其天然支持可以让我们不需要 applicationContext.xml 再次声明一次 URL 请求 Bean ,即减少了 Struts 的声明 URL ,达到减少些繁琐的配置。但只是少了一些而已,同样也会面临着配置文件的管理问题。

Spring 注解将给我们的工作带来些轻松,利用反射机制原理出现的注解就是为了解决配置大量的配置问题。请看下处理一次简单的请求响应代码

@Controller --声明控制器

@RequestMapping("/person") –声明URL

publicclass PersonControl extends BaseController {

@Autowired –业务接口注入

private personServices personServices;

/**

* 获得人员列表

* @param request

* @param response

* @throws Exception

*/

@RequestMapping(params = "method=geList") --即处理/person.do? method=geList方法

publicvoid getnodeList(HttpServletRequest request,

HttpServletResponse response) throws Exception { //处理请求

//处理响应

}

}

可以看出,在代码上加入注解可以省去我们上面说的多个配置文件的工作,达到简便的 MVC 处理请求响应。

在配上简单的配置文件声明,即可轻松处理项目的全部请求控制工作。

四、单元测试

测试准备工作:

1、搭建测试Web环境

@RunWith(UnitilsJUnit4TestClassRunner.class)

@SpringApplicationContext({"classpath:*.xml","file:src/main/webapp/WEB-INF/spring-configuration/*.xml","file:src/main/webapp/WEB-INF/*.xml" })

2、注入Controller 类

@SpringBeanByType

BeanController controller;

3、编写测试数据

测试数据的文件名一定要与测试类的文件名相同,比如测试数据BeanControllerTest.xml ,测试类 BeanControllerTest。

4、注入测试数据

@Test

@DataSet

public void testBean(){}

关键字:用途;优点;代码;测试

初识Spring MVC-0412-v1.0张雅慧相关推荐

  1. Spring MVC集成Swagger2.0

    在集成Swagger之前,得先说说什么是Swagger,它是用来做什么的,然后再讲讲怎么集成,怎么使用,当然,在这之前,需要了解一下OpenAPI. OpenAPI OpenAPI 3.0规范定义了一 ...

  2. Java EE:第10章初识Spring MVC框架 课后习题

    <Java EE企业级应用开发教程 第2版(Spring+Spring MVC+MyBatis)>黑马程序员编著 中国工信出版集团 人民邮电出版社 目录 1.请简述MyBatis与Spri ...

  3. 表达式语言-0421-v1.0张雅慧

    一.表达式语言简史 JSP 2.0 最初是将 EL应用在 JSP 标准标签库(JSTL)1.0 规范中.JSP 1.2 程序员将标准 库导入到他们的应用程序中,就可以使用 EL.JSP 2.0 及其更 ...

  4. redis.conf配置文件详解-0511-v1.0张雅慧

    一.基本配置 daemonize no 是否以后台进程启动 databases 16 创建database的数量(默认选中的是database 0) save 900 1 #刷新快照到硬盘中,必须满足 ...

  5. 分享:Vue.js新手入门指南-0518-v1.0张雅慧

    最近在逛各大网站,论坛,以及像SegmentFault等编程问答社区,发现Vue.js异常火爆,重复性的提问和内容也很多,楼主自己也趁着这个大前端的热潮,着手学习了一段时间的Vue.js,目前用它正在 ...

  6. 分享:Vue.js新手入门指南-0518-v1.0张雅慧(续)

    11.我在学习Vue.js的时候老是听到Webpack,这是啥? Webpack是一个前端打包和构建工具.如果你之前一直是手写HTML,CSS,JavaScript,并且通过link标签将CSS引入你 ...

  7. 融资-0420-v1.0张雅慧

    主要内容: 定义: 融资是指为支付超过现金的购货款而采取的货币交易手段,或为取得资产而集资所采取的货币手段.指为支付超过现金的购货款而采取的货币交易手段,或为取得资产而集资所采取的货币手段.货币资金的 ...

  8. 通用商业画布-0408-v1.0张雅慧

    商业画布图分析 我将从以下两张图进行分析: 1. 图一:一个项目想要可以顺利进行达到预期目标,首要的,应当明确好项目出发点,即公司or项目的关键业务是什么,简言之我要做什么,其次我拥有的核心资源是什么 ...

  9. php代码优化,思维扩展-06.01-v1.0张雅慧

    场景一:遍历一个数组获取新的数据结构 也许你会这样写: // 申明一个新的数组,组装成你想要的数据 $tmp = []; foreach ($arr as $k => $v) { // 取出你想 ...

最新文章

  1. ios linux时间戳转时间,将UNIX时间戳转换为数据 – iOS
  2. 如何修改vs2008代码字体
  3. 前端学习(2955):项目中组件的全局注册
  4. 查找最接近的元素(信息学奥赛一本通-T1240)
  5. MYSQL模式匹配:REGEXP和like用法
  6. Grunt 入门指南3:创建Tasks
  7. mysql 乱码处理
  8. c++语言iso标准,C++20标准 (ISO/IEC 14882:2020) 正式发布
  9. 深入分析SQL字符串限制长度漏洞
  10. blade利刃出鞘】一起进入移动端webapp开发吧
  11. 复现贪吃蛇程序——吃食物增加长度(最后一篇)
  12. 论文阅读 [TPAMI-2022] Deep Visual Odometry With Adaptive Memory
  13. 超牛无损图片放大神器PhotoZoom
  14. 温肯本科学习回忆录一:简述我的本科专业
  15. Python处理中文路径
  16. 如何学习一门计算机语言
  17. 水体微生物多样性分析
  18. 指南Java面试常问问题及答案
  19. 摩申网络2017年7月4日游戏新闻
  20. zemax-07人眼模型

热门文章

  1. Cesium Volumn 体渲染
  2. yolov3的缺点_YOLOV3问答式解读
  3. 用C语言求1-1000之间的素数/质数
  4. 计算机网络虚电路数据报,虚电路服务和数据报服务
  5. 统计素数并求和,C语言
  6. WinDriver驱动程序框架
  7. AutoCAD VBA点抽稀程序
  8. 超强:Unix道德经(英文版) 1
  9. 虚拟机安装Ubuntu时界面显示不全
  10. ensp 配置DHCP