初识Spring MVC-0412-v1.0张雅慧
初识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张雅慧相关推荐
- Spring MVC集成Swagger2.0
在集成Swagger之前,得先说说什么是Swagger,它是用来做什么的,然后再讲讲怎么集成,怎么使用,当然,在这之前,需要了解一下OpenAPI. OpenAPI OpenAPI 3.0规范定义了一 ...
- Java EE:第10章初识Spring MVC框架 课后习题
<Java EE企业级应用开发教程 第2版(Spring+Spring MVC+MyBatis)>黑马程序员编著 中国工信出版集团 人民邮电出版社 目录 1.请简述MyBatis与Spri ...
- 表达式语言-0421-v1.0张雅慧
一.表达式语言简史 JSP 2.0 最初是将 EL应用在 JSP 标准标签库(JSTL)1.0 规范中.JSP 1.2 程序员将标准 库导入到他们的应用程序中,就可以使用 EL.JSP 2.0 及其更 ...
- redis.conf配置文件详解-0511-v1.0张雅慧
一.基本配置 daemonize no 是否以后台进程启动 databases 16 创建database的数量(默认选中的是database 0) save 900 1 #刷新快照到硬盘中,必须满足 ...
- 分享:Vue.js新手入门指南-0518-v1.0张雅慧
最近在逛各大网站,论坛,以及像SegmentFault等编程问答社区,发现Vue.js异常火爆,重复性的提问和内容也很多,楼主自己也趁着这个大前端的热潮,着手学习了一段时间的Vue.js,目前用它正在 ...
- 分享:Vue.js新手入门指南-0518-v1.0张雅慧(续)
11.我在学习Vue.js的时候老是听到Webpack,这是啥? Webpack是一个前端打包和构建工具.如果你之前一直是手写HTML,CSS,JavaScript,并且通过link标签将CSS引入你 ...
- 融资-0420-v1.0张雅慧
主要内容: 定义: 融资是指为支付超过现金的购货款而采取的货币交易手段,或为取得资产而集资所采取的货币手段.指为支付超过现金的购货款而采取的货币交易手段,或为取得资产而集资所采取的货币手段.货币资金的 ...
- 通用商业画布-0408-v1.0张雅慧
商业画布图分析 我将从以下两张图进行分析: 1. 图一:一个项目想要可以顺利进行达到预期目标,首要的,应当明确好项目出发点,即公司or项目的关键业务是什么,简言之我要做什么,其次我拥有的核心资源是什么 ...
- php代码优化,思维扩展-06.01-v1.0张雅慧
场景一:遍历一个数组获取新的数据结构 也许你会这样写: // 申明一个新的数组,组装成你想要的数据 $tmp = []; foreach ($arr as $k => $v) { // 取出你想 ...
最新文章
- ios linux时间戳转时间,将UNIX时间戳转换为数据 – iOS
- 如何修改vs2008代码字体
- 前端学习(2955):项目中组件的全局注册
- 查找最接近的元素(信息学奥赛一本通-T1240)
- MYSQL模式匹配:REGEXP和like用法
- Grunt 入门指南3:创建Tasks
- mysql 乱码处理
- c++语言iso标准,C++20标准 (ISO/IEC 14882:2020) 正式发布
- 深入分析SQL字符串限制长度漏洞
- blade利刃出鞘】一起进入移动端webapp开发吧
- 复现贪吃蛇程序——吃食物增加长度(最后一篇)
- 论文阅读 [TPAMI-2022] Deep Visual Odometry With Adaptive Memory
- 超牛无损图片放大神器PhotoZoom
- 温肯本科学习回忆录一:简述我的本科专业
- Python处理中文路径
- 如何学习一门计算机语言
- 水体微生物多样性分析
- 指南Java面试常问问题及答案
- 摩申网络2017年7月4日游戏新闻
- zemax-07人眼模型