Spring4.0实战 rest相关

package com.paic.pay.merchant.web;

import com.paic.pay.merchant.entity.MerchantUser;
import com.paic.pay.merchant.exception.Error;
import com.paic.pay.merchant.exception.UserNotFoundException;
import com.paic.pay.merchant.mapper.UserRegisterMapper;
import com.paic.pay.merchant.vo.Pizza;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.UUID;

/**
 * Created tangxin pc on 2017/1/17.
 */
@Slf4j
@RestController
@RequestMapping(value = "/v1")
public class RegisterController {

    @Autowired
    private UserRegisterMapper userRegisterMapper;

    /**
     * 商户注册
     * @return
     */
    @PostMapping(value = "/reg")
    public String reg(){
        return "reg";
    }

    @PostMapping(value = "/cache")
    public void cache(HttpServletRequest request){
        long date = System.currentTimeMillis();
        String threadIndex = request.getParameter("threadIndex");
        String url = request.getRequestURI();
        log.info("url:{} date:{} threadIndex:{}",url,date,threadIndex);
    }

    @GetMapping(value = "/uuid")
    public String uuid(){
        return UUID.randomUUID().toString();
    }

    @GetMapping(value = "/pizza")
    public Pizza getPizza(){
        Pizza pizza = new Pizza("中国比萨");
        return pizza;
    }

    @GetMapping(value = "/getUser")
    public MerchantUser getMerchantUser(String userId){
        MerchantUser merchantUser = userRegisterMapper.getMerchantUser(userId);
        return merchantUser;
    }

    @GetMapping(value = "/student")
    public String xml(String time){
        log.info("params:{}",time);
        return "<?xml version=\"1.0\" encoding=\"UTF-8\"?><student>唐欣</student>";
    }

    @GetMapping(value = "/getUser2")
    public ResponseEntity<MerchantUser> getMerchantUser2(String userId){
        MerchantUser merchantUser = userRegisterMapper.getMerchantUser(userId);
        HttpStatus status = merchantUser!=null ? HttpStatus.OK : HttpStatus.NOT_FOUND;
        return new ResponseEntity<>(merchantUser,status);
    }

    @GetMapping(value = "/getUser3")
    public ResponseEntity<?> getMerchantUser3(String userId){
        MerchantUser merchantUser = userRegisterMapper.getMerchantUser(userId);
        if(merchantUser==null){
            Error error = new Error(4,"用户["+userId+"]不存在");
            return new ResponseEntity<>(error,HttpStatus.NOT_FOUND);
        }
        return new ResponseEntity<>(merchantUser,HttpStatus.OK);
    }

    /**
     * 当查询结果为null时抛出异常 由异常处理器返回代码
     * @param userId
     * @return     正常返回:{"userId":1000,"userName":张三}
     *             异常返回:{"code":4,"message":"用户[16]不存在"}
     */
    @GetMapping(value = "/getUser4")
    public ResponseEntity<MerchantUser> getMerchantUser4(String userId){
        MerchantUser merchantUser = userRegisterMapper.getMerchantUser(userId);
        if(merchantUser==null){throw new UserNotFoundException(userId);}
        return new ResponseEntity<>(merchantUser,HttpStatus.OK);
    }

    /**
     * 异常处理器
     * @param e
     * @return
     */
    @ExceptionHandler(UserNotFoundException.class)
    public ResponseEntity<Error> userNotFound(UserNotFoundException e){
        String userId = e.getUserId();
        Error error = new Error(4,"用户["+userId+"]不存在");
        return new ResponseEntity<>(error,HttpStatus.NOT_FOUND);
    }
}
时间: 2024-10-12 22:51:37

Spring4.0实战 rest相关的相关文章

【Spring实战-2】Spring4.0.4整合Hibernate4.3.6

作者:ssslinppp       1. 摘要 本文主要讲解如何在Spring4.0.4下整合Hibernate4.3.6: 主要介绍了如下内容: 项目结构的规划: Spring MVC的配置和使用: Spring下整合Hibernate的具体过程: 数据源的配置: jdbcTemplate和HibernateTemplate两种方式操作数据库: 2. 项目结构的规划 下面是整个项目的截图: 程序源代码分层设计,主要分为Dao层.service层和controller层,还有一个domain层

[CXF REST标准实战系列] 二、Spring4.0 整合 CXF3.0,实现测试接口(转)

转自:[CXF REST标准实战系列] 二.Spring4.0 整合 CXF3.0,实现测试接口 文章Points: 1.介绍RESTful架构风格 2.Spring配置CXF 3.三层初设计,实现WebService接口层 4.撰写HTTPClient 客户端,并实现简单调用 介绍RESTful架构风格 REST是REST之父Roy Thomas创造的,当时提出来了REST的6个特点:客户端-服务器的.无状态的.可缓存的.统一接口.分层系统和按需编码.其具有跨语言和跨平台的优势. REST是一

[CXF REST标准实战系列] 二、Spring4.0 整合 CXF3.0,实现测试接口

Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want. 文章Points: 1.介绍RESTful架构风格 2.Spring配置CXF 3.三层初设计,实现WebService接口层 4.撰写HTTPClient 客户端,并实现简单调用 介绍RESTful架构风格 REST是REST之父Roy Thomas创造的,当时提出来了REST的6个特点:客户端-服务器的.无状态的.可缓存的.统一接口.分层系

项目ITP(五) spring4.0 整合 Quartz 实现任务调度

前言 系列文章:[传送门] 项目需求: 二维码推送到一体机上,给学生签到扫描用.然后需要的是 上课前20分钟 ,幸好在帮带我的学长做 p2p 的时候,接触过.自然 quartz 是首选.所以我就配置了下,搞了个小样例给大家. 正文 spring4.0 整合 Quartz 实现任务调度.这是期末项目的最后一篇,剩下到暑假吧.  Quartz 介绍 Quartz is a full-featured, open source job scheduling service that can be in

项目ITP(六) spring4.0 整合 Quartz 实现动态任务调度

前言 系列文章:[传送门] 项目需求: http://www.cnblogs.com/Alandre/p/3733249.html 上一博客写的是基本调度,后来这只能用于,像每天定个时间 进行数据库备份.但是,远远不能在上次的需求上实现.所以需要实现spring4.0 整合 Quartz 实现动态任务调度. 正文 spring4.0 整合 Quartz 实现任务调度.这真是期末项目的最后一篇,剩下到暑假吧.  Quartz 介绍 Quartz is a full-featured, open s

基于restful注解(spring4.0.2整合flex+blazeds+spring-mvc)&lt;一&gt;

摘自: http://www.blogjava.net/liuguly/archive/2014/03/10/410824.html 参考官网:1.http://livedocs.adobe.com/blazeds/1/blazeds_devguide/2.http://docs.spring.io/spring-flex/docs/1.5.2.RELEASE/reference/html/1)下载blazeds(turnkey4.0.x版本)网址:http://sourceforge.net/

Spring4.0系列9-websocket简单应用

http://wiselyman.iteye.com/blog/2003336 ******************************************* Spring4.0系列1-新特性 Spring4.0系列2-环境搭建 Spring4.0系列[email protected] Spring4.0系列4-Meta Annotation(元注解) Spring4.0系列[email protected] Spring4.0系列6-Generic Qualifier(泛型限定) Sp

【课程分享】jQuery2.0应用开发:SSH框架整合jQuery2.0实战OA办公自动化(VSS、operamasks-UI框架)

我的qq是2059055336,对这个课程有兴趣的可以加我qq联系. 课程下载地址:链接:http://pan.baidu.com/share/link?shareid=395438909&uk=3611155194 密码:mlvl 课程下载地址:http://www.kuaipan.cn/file/id_192202874577496484.htm?source=1 一.本课程是怎么样的一门课程(全面介绍)    1.1.课程的背景 jQuery 2.0 正式版发布,不在支持 IE 6/7/8

spring4.0.6最新稳定版新特性学习,简单学习教程(一)

Spring Framework 4.0 学习整理. Spring框架的核心部分就是Ioc容器,而Ioc控制的就是各种Bean,一个Spring项目的水平往往从其XML配置文件内容就能略知一二,很多项目,往往是外包公司的项目,配置文件往往是乱七八糟,抱着能跑就行,不报错就行的态度去写,然后在项目中后期发现各种缺失又去一通乱补,其结果就是,整个文档可读性极差,毫无章法.这也不能怪写这个XML的人,拿着苦逼程序员的工资干着架构师的工作必然是这个结果.为了程序员的幸福,我认为有必要来一套简单快速的官方