给新同事做的spring mvc 培训教程及例子

项目有新人加入团队, 根据项目的情况,对刚毕业的新人做了一个很简单的入门培训,这是 spring mvc 部分,  分别有工程对应. 主要内容如下:

1. 实现最简单的 spring mvc 

2. spring mvc 与 model 绑定

3. spring mvc 增删改查,rest 风格, 必须使用 GET,POST,PUT,Delete. 

4. spring mvc 返回json 给客户端.

5. 讲义所用到的PPT,作为提纲.

严格的说来,这不是一整套 spring mvc 的学习材料和例子,但入门已经足够了。 本文是有原来做培训的PPT 转换而成,贴到博客上面样式估计有点难看。

RESTFUL API 设计原则

1. 当标准合理的时候遵守标准(因为很多标准的制定是学院派, 在实际应用 中可能不太适应,这种情况不多)。

2. API应该对程序员友好,并且在浏览器地址栏容易输入。

3. API应该简单,直观,容易使用的同时优雅。

4. API应该具有足够的灵活性来支持上层ui, 因为API一旦对外发布,就很难更改。

5. API的就是程序员的UI,和其他UI一样,你必须仔细考虑它的用户体验

在项目中应用RESTFUL API

重点关注资源状态变化: CRUD, 如下例子:

获取某一个具体的用户,比如id=12的用户

Method

URI

Description

GET

/users/12

PUT

/users

POST

/users

Delete

/users/12

思考,如果获取用户列表中具体的某一页内容,设计风格应该如何:

1. /users/page/1

2. /users/?page=1

哪种种方式更合理?

RESTFUL 总结

1. restfull是一种风格,不是规范,也不是所谓的封装,他只是将http 协议用的更彻底了,我们在普通的开发中,虽然说是基于http的,但是http中很多东西我们都没有用到,比如http的put,delete提交方式,通过http的Accept和Content-Type参数获得不同格式的数据。

2. http提供了get,post,delete,put,可以使用这四种不同的提交方式对应不同的业务操作,比如get就是查询,post是更新或新增,delete删除,put是更新

3数据格式,根据http请求的头信息中用Accept和Content-Type的类型,返回不同的数据格式, 比如html,xml,json 和图片等等。

4通过充分的使用http协议,我们可以忽略交互双方的平台,语言等等,就和websevice一样,我们要的仅仅的数据,符合规范格式的数据

5. HTTP1.0 中只支持 GET,POST. HTTP 1.1 中支持PUT,Delete 等方法,但在实际的开发过程中,可能会用不到 PUT, Delete 方法,而用POST 替代, 但也有三方的框架通过特殊的方式来支持PUT,Delete操作,比如SPRING 提供了特殊的方式来支持PUT,Delete 操作,将在SPRING MVC 部分介绍.

6. 不要为了REST 而REST.

Spring MVC

Spring MVC 环境准备

Eclipse 3.6 以上版本

jdk 1.6 以上版本

Spring 3.0 以上版本

Tomcat 6.0 or jboss 5.0 以上版本

Spring MVC 配置文件

1. 配置 web.xml

Spring MVC 配置文件

2. 配置与DispatcherServlet 对应的配置文件, 本例为spring-servlet.xml

Spring MVC 配置文件

工程代码参考: training_spring_mvc_rest_0000

Spring MVC 与 Model 绑定的例子

1. 在 controller 中绑定相关Model

Spring MVC 与 Model 绑定的例子

1. 在视图页面中绑定 Model

Spring MVC 与 Model 绑定的例子

源代码工程参考: training_spring_mvc_rest_1000

Spring MVC 实现REST CRUD

1. 在web.xml 中配置 hideHttpMethodFilter 让Spring MVC 支持 put,delete操作

2. Method (GET,POST,PUT,Delete应用)

3. RequestMapping, PathVariable 的应用

Spring MVC 实现REST CRUD

1. 在web.xml 中配置 hideHttpMethodFilter 让Spring MVC 支持 put,delete操作

Spring MVC 实现REST CRUD

2. Method (GET,POST,PUT,Delete应用)

Spring MVC 实现REST CRUD

3. RequestMapping, PathVariable 的应用

Spring MVC 实现REST CRUD

工程代码参考: training_spring_mvc_rest_2000

Spring MVC REST API 返回 json 格式数据

1. 环境变化, 新增jackson jar 包,实现json 数据序列化与反序列化.

2. 配置文件修改

3. ResponseBody 使用

Spring MVC REST API 返回 json 格式数据

1. 环境变化, 新增jackson jar 包,实现json 数据序列化与反序列化. Jackson 1.x 与 2.x 有些区别。

如果是maven 工程,请配置 pom.xml 。

如果是普通工程,请增加jackson 相关 jar 包。类似下图

 

Spring MVC REST API 返回 json 格式数据

2. 配置文件修改,增加如下配置(spring-servlet.xml中).

PS: Spring 默认会采用 jackson 包将对象序列化成json 返回到客户端. 默认情况下是不需要做配置的。如果需要转换成其他格式比如xml, 则需要配置相关的 Message Convert.

Spring MVC REST API 返回 json 格式数据

3. ResponseBody 的使用.

Spring MVC REST API 返回 json 格式数据

3. ResponseBody 的使用, 返回结果

Spring MVC REST API 返回 json 格式数据

3. 工程代码参考: training_spring_mvc_rest_3000

 附,本PPT 所用到的源代码工程下载: 

1. spring mvc 入门配置代码

2. spring mvc 与model绑定源代码

3. spring mvc 实现 rest 风格的增删改查 CRUD

4. spring mvc 返回 json 数据到客户端

5. spring mvc 项目所需要的jar 包



除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
[本日志由 轻舞肥羊 于 2014-04-02 08:04 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: spring mvc
相关日志:
评论: 1 | 引用: 0 | 查看次数: -
回复回复求学者[2015-08-19 01:50 PM | del]
你好 为什么我运行程序 得不到list结果  返回不了json 字符串呢?
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.