002 Spring Restful案例
1:工程结构

需要注意的是需要额外导入以下三个包:
jackson-annotations-2.6.1.jar
jackson-core-2.6.1.jar
jackson-databind-2.6.1.jar
2:配置文件

(1)web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list> <!--Spring Restfull-->
<servlet>
<servlet-name>rest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>rest</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping> </web-app>
(2)rest-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-4.2.xsd"> <mvc:annotation-driven/>
<context:component-scan base-package="com.wzh.api"/> <!--Dao-->
<bean id="userDao" class="com.wzh.api.user.UserDaoImpl"/> <!--Service-->
<bean id="userService" class="com.wzh.api.user.UserService">
<property name="userDao" ref="userDao"/>
</bean> <!--Controller-->
<bean id="userCtrl" class="com.wzh.api.user.UserCtrl">
<property name="userService" ref="userService"/>
</bean> </beans>
3:com.wzh.comm.ResultVo
package com.wzh.comm; import com.fasterxml.jackson.databind.annotation.JsonSerialize; /**
* @author y
* @date 2015-9-6 18:34:44
* @version V1.0
* @desc 操作结果公共返回值对象
*/
public class ResultVo {
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
private Integer no; @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
private String msg; @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
private Object result; public Integer getNo() {
return no;
} public void setNo(Integer no) {
this.no = no;
} public String getMsg() {
return msg;
} public void setMsg(String msg) {
this.msg = msg;
} public Object getResult() {
return result;
} public void setResult(Object result) {
this.result = result;
} }
使用jackson提供的注解功能:
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
如果字段的值为NULL则不进行JOSN转换.
4:com.wzh.api.user.*
(1)UserModel.java
package com.wzh.api.user; /**
* @author y
* @date 2015-9-5 9:15:55
* @version V1.0
* @desc 用户对象
*/
public class UserModel { private String dm;
private String name;
private Integer age; public String getDm() {
return dm;
} public void setDm(String dm) {
this.dm = dm;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} }
(2)UserDao.java
package com.wzh.api.user; import java.util.List; /**
* @author y
* @date 2015-9-5 9:17:28
* @version 1.0
* @desc
*/
public interface UserDao { int add(UserModel user); int delete(String dm); int update(UserModel user); UserModel get(String dm); List<UserModel> list(UserModel user,int offset,int count);
}
(3)UserDaoImpl.java
package com.wzh.api.user; import java.util.ArrayList;
import java.util.List; /**
* @author y
* @date 2015-9-6 18:20:23
* @version V1.0
* @desc
*/
public class UserDaoImpl implements UserDao{ public int add(UserModel user) {
return 1;
} public int delete(String dm) {
return 1;
} public int update(UserModel user) {
return 1;
} public UserModel get(String dm) {
UserModel um = new UserModel();
um.setDm(dm);
um.setName("张三");
um.setAge(26);
return um;
} public List<UserModel> list(UserModel user, int offset, int count) {
List<UserModel> list = new ArrayList<UserModel>();
UserModel um = new UserModel();
um.setDm("001");
um.setName("张三");
um.setAge(26);
list.add(um);
um = new UserModel();
um.setDm("002");
um.setName("李四");
um.setAge(26);
list.add(um);
um = new UserModel();
um.setDm("003");
um.setName("王五");
um.setAge(26);
list.add(um); return list;
} }
(4)UserService.java
package com.wzh.api.user; import com.wzh.comm.ResultVo; /**
* @author y
* @date 2015-9-6 18:24:13
* @version V1.0
* @desc
*/
public class UserService {
private UserDao userDao;
private ResultVo resultVo; public void setUserDao(UserDao userDao){
this.userDao = userDao;
} public ResultVo add(UserModel user){
resultVo = new ResultVo();
resultVo.setNo(userDao.add(user));
resultVo.setMsg("数据增加成功"); return resultVo;
} public ResultVo delete(String dm){
resultVo = new ResultVo();
resultVo.setNo(userDao.delete(dm));
resultVo.setMsg("删除成功"); return resultVo;
} public ResultVo update(UserModel user){
resultVo = new ResultVo();
resultVo.setNo(userDao.update(user));
resultVo.setMsg("更新成功"); return resultVo;
} public ResultVo get(String dm){
resultVo = new ResultVo();
resultVo.setNo(1);
resultVo.setMsg("OK");
resultVo.setResult(userDao.get(dm)); return resultVo;
} public ResultVo list(UserModel user,int offset,int count){
resultVo = new ResultVo();
resultVo.setNo(1);
resultVo.setMsg("OK");
resultVo.setResult(userDao.list(user, offset, count)); return resultVo;
}
}
(5)UserCtrl.java
package com.wzh.api.user; import com.wzh.comm.ResultVo;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; /**
* @author y
* @date 2015-9-6 18:49:03
* @version V1.0
* @desc
*/
@RestController
@RequestMapping("/api/users")
public class UserCtrl { private UserService userService; public void setUserService(UserService userService){
this.userService = userService;
} @RequestMapping(
value="/add/{dm}/{name}/{age}",
method=RequestMethod.POST,
headers="Accept=application/json")
public ResultVo add(@PathVariable String dm,@PathVariable String name,@PathVariable Integer age){
UserModel user = new UserModel();
user.setDm(dm);
user.setName(name);
user.setAge(age); return userService.add(user);
} @RequestMapping(
value="/{dm}",
method=RequestMethod.DELETE,
headers="Accept=application/json")
public ResultVo delete(@PathVariable String dm){
return userService.delete(dm);
} @RequestMapping(
value="/update/{dm}/{name}/{age}",
method=RequestMethod.PUT,
headers="Accept=application/json")
public ResultVo update(@PathVariable String dm,@PathVariable String name,@PathVariable Integer age){
UserModel user = new UserModel();
user.setDm(dm);
user.setName(name);
user.setAge(age); return userService.update(user);
} @RequestMapping(
value="/{dm}",
method=RequestMethod.GET,
headers="Accept=application/json")
public ResultVo get(@PathVariable String dm){
return userService.get(dm);
} @RequestMapping(
method=RequestMethod.GET,
headers="Accept=application/json")
public ResultVo list(){
UserModel user = new UserModel();
int offset=10;
int count = 10; return userService.list(user, offset, count);
}
}
6:测试
使用google一个插件应用Postman进行Restful测试.
(1)增加用户

(2)删除用户

(3)更新用户信息

(4)查询一个用户的详情

(5)查询集合用户详情

002 Spring Restful案例的更多相关文章
- HTTP Status 405 - Request method 'GET' not supported?(尚硅谷Restful案例练习关于Delete方法出现的错误)
哈罗大家好,最近在如火如荼的学习java开发----Spring系列框架,当学习到SpringMVC,动手实践RESTFUL案例时,发现了以上报错405,get请求方法没有被支持. 首先第一步,我查看 ...
- cxf spring restful 问题解决(jar包冲突)
SEVERE: Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error ...
- spring原理案例-基本项目搭建 01 spring framework 下载 官网下载spring jar包
下载spring http://spring.io/ 最重要是在特征下面的这段话,需要注意: All avaible features and modules are described in the ...
- spring原理案例-基本项目搭建 02 spring jar包详解 spring jar包的用途
Spring4 Jar包详解 SpringJava Spring AOP: Spring的面向切面编程,提供AOP(面向切面编程)的实现 Spring Aspects: Spring提供的对Aspec ...
- spring原理案例-基本项目搭建 03 创建工程运行测试 spring ioc原理实例示例
下面开始项目的搭建 使用 Java EE - Eclipse 新建一 Dynamic Web Project Target Runtime 选 Apache Tomcat 7.0(不要选 Apache ...
- spring入门--spring入门案例
spring是一个框架,这个框架可以干很多很多的事情.感觉特别吊.但是,对于初学者来说,很难理解spring到底是干什么的.我刚开始的时候也不懂,后来就跟着敲,在后来虽然懂了,但是依然说不明白它到底是 ...
- Spring入门案例 idea创建Spring项目
spring入门案例 idea创建spring项目 Spring介绍 Spring概述 Spring是一个开源框架,Spring是2003年兴起的轻量级java开发框架,由Rod Johnson 在其 ...
- Spring(二)--Spring入门案例
Spring入门案例 1.需要的实体类 2.需要的接口和实现类 3.需要的service和实现类 /** * service层的作用 * 在不改变dao层代码的前提下,增加业务逻辑操作 */ publ ...
- Spring升级案例之IOC介绍和依赖注入
Spring升级案例之IOC介绍和依赖注入 一.IOC的概念和作用 1.什么是IOC 控制反转(Inversion of Control, IoC)是一种设计思想,在Java中就是将设计好的对象交给容 ...
随机推荐
- XML相关概念
XML:可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. XSL:XSL = XML 样式表.XSL 之于XML,就像CSS之于HTML.它是指可扩展样式语言 ...
- Linux 调度器模拟
http://www.ibm.com/developerworks/cn/linux/l-linux-scheduler-simulator/ LinSched LinSched 是驻留在用户空间中的 ...
- Qt 学习之路 :Qt 模块简介
Qt 5 与 Qt 4 最大的一个区别之一是底层架构有了修改.Qt 5 引入了模块化的概念,将众多功能细分到几个模块之中.Qt 4 也有模块的概念,但是是一种很粗的划分,而 Qt 5 则更加细化.本节 ...
- 【AIX】AIX 6.1 “C compiler cc is not found”问题的解决方案
一.问题的由来 前几天在AIX中安装部署 nginx-1.4.1,报如下错误: # cd nginx-1.4.1 # ./configure checking for OS + AIX 1 0004 ...
- 线程、委托、lambda运算符的简单示例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- JDK5-枚举
1. 使用普通类模拟枚举 public class Weekday { private Weekday() {} // 私有化 public static final Weekday MONDAY = ...
- Android之发送短信的两种方式
SMS涉及的主要类SmsManager 实现SMS主要用到SmsManager类,该类继承自java.lang.Object类,下面我们介绍一下该类的主要成员. 公有方法: ArrayList< ...
- 如何学习H264协议
如何学习h.264协议 首先,我假定你已经具有如下基础: 1 了解基本的视频知识,知道什么是YCbCr/YUV: 2 知道基本的视频压缩原理: 如果这两条还不具备,那么,停一下,补一下课.这方面的相关 ...
- sql - Invalid object name 'dbo.in$'
这是我从excel导入的表,用查询的时候,不加前面部分的'dbo',能查出来,好像是owner的原因吧.
- N3292x IBR介绍
N3292x IBR介绍 1 IBR启动流程 图1-1 IBR启动流程 CHIP_CFG[0] Mode 0 Boot from IBR Recovery Mode with crystal inpu ...