给新同事做的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 所用到的源代码工程下载:
3. spring mvc 实现 rest 风格的增删改查 CRUD
From:一号门
Previous:扩展spring schema 的方法, 代码下载
COMMENTS