• 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)查询集合用户详情

  • 相关阅读:
    poj 2251
    poj 1321
    poj 2777
    poj 3468
    poj 2318
    javascript
    buhui
    swift 构造器
    mac上不了网
    字体
  • 原文地址:https://www.cnblogs.com/yshyee/p/4787090.html
Copyright © 2020-2023  润新知