`
阅读更多

Java返回结果封装,SpringBoot返回结果封装

 

================================

©Copyright 蕃薯耀 2020年1月10日

http://fanshuyao.iteye.com/

 

当后面需要返回json结果给前端时,往往要写很多代码,不利于代码重用,所以封装一个返回结果的bean,直接调用,这样方便简洁、高效率、代码统一美观。

 

一、返回结果bean封装

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.szpl.gtkj.util.JsonUtil;

public class Result {
    
    public static final String SUCCESS = "操作成功。";
    public static final String FAILURE = "操作失败!";
    
    private boolean result;
    private String msg;
    private Object datas;
    
    private Result() {}
    
    public static Result ok() {
        return Result.ok(SUCCESS);
    }
    
    public static Result ok(String msg) {
        return Result.ok(msg, null);
    }
    
    public static Result ok(Object datas) {
        return Result.ok(SUCCESS, datas);
    }
    
    public static Result ok(String msg, Object datas) {
        Result result = new Result();
        result.setResult(true);
        result.setMsg(msg);
        result.setDatas(datas);
        return result;
    }
    
    public static Result fail() {
        return Result.fail(FAILURE);
    }
    
    public static Result fail(String msg) {
        return Result.fail(msg, null);
    }
    
    public static Result fail(Object datas) {
        return Result.fail(FAILURE, datas);
    }
    
    public static Result fail(String msg, Object datas) {
        Result result = new Result();
        result.setResult(false);
        result.setMsg(msg);
        result.setDatas(datas);
        return result;
    }
    
    public boolean isResult() {
        return result;
    }
    public void setResult(boolean result) {
        this.result = result;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public Object getDatas() {
        return datas;
    }
    public void setDatas(Object datas) {
        this.datas = datas;
    }
    

    public static void main(String[] args) {
        System.out.println(JsonUtil.obj2String(Result.ok()));
        System.out.println(JsonUtil.obj2String(Result.ok("haha")));
        System.out.println(JsonUtil.obj2String(Result.ok("haha", "aaa")));
        
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("aa", "111");
        map.put("bb", "22");
        map.put("ccc", "33");
        System.out.println(JsonUtil.obj2String(Result.ok("haha", map)));
        
        List<String> list = new ArrayList<String>();
        list.add("aaaaaaaa");
        list.add("bbbbbb");
        list.add("cccccccccccc");
        list.add("ddddddddddd");
        System.out.println(JsonUtil.obj2String(Result.ok("haha", list)));
        
        System.out.println(JsonUtil.obj2String(Result.fail()));
        System.out.println(JsonUtil.obj2String(Result.fail("失败了")));
        System.out.println(JsonUtil.obj2String(Result.fail(list)));
        System.out.println(JsonUtil.obj2String(Result.fail("失败了", map)));
    }
    
    
}

 

 

二、使用方法:

 

1、返回成功:

return Result.ok();

 重构的方法:

public static Result ok() {
        return Result.ok(SUCCESS);
    }
    
    public static Result ok(String msg) {
        return Result.ok(msg, null);
    }
    
    public static Result ok(Object datas) {
        return Result.ok(SUCCESS, datas);
    }
    
    public static Result ok(String msg, Object datas) {
        Result result = new Result();
        result.setResult(true);
        result.setMsg(msg);
        result.setDatas(datas);
        return result;
    }

 

2、返回失败:

return Result.fail();

 重构的方法:

public static Result fail() {
        return Result.fail(FAILURE);
    }
    
    public static Result fail(String msg) {
        return Result.fail(msg, null);
    }
    
    public static Result fail(Object datas) {
        return Result.fail(FAILURE, datas);
    }
    
    public static Result fail(String msg, Object datas) {
        Result result = new Result();
        result.setResult(false);
        result.setMsg(msg);
        result.setDatas(datas);
        return result;
    }

 

 

三、使用示例:

 

在Controller声明@RestController

@RestController
@RequestMapping("/xxx")
public class XxxController{
……
}

 

结果返回的是Result对象bean

@RequestMapping("/uploadFiles")
    public Result uploadFiles(HttpServletRequest request, HttpServletResponse response, 
            @RequestParam("files") MultipartFile[] multipartFiles) throws FileNotFoundException, IOException, ValidationException{
        
        List<FileBean> fileBeans = this.saveFiles(request, response, multipartFiles);
        
        log.info("fileBeans = " + JsonUtil.obj2String(fileBeans));
        
        return Result.ok(fileBeans);
        
    }

 

@RequestMapping("/save")
public Result save(HttpServletRequest request, HttpServletResponse response, 
            @RequestParam(value="files", required=true) MultipartFile[] multipartFiles) throws Exception {

    return Result.ok();
        
}

 

 

 

(如果你觉得文章对你有帮助,欢迎捐赠,^_^,谢谢!) 

================================

©Copyright 蕃薯耀 2020年1月10日

http://fanshuyao.iteye.com/

 

1
1
分享到:
评论

相关推荐

    springboot统返回结果集工具类demo

    springboot统返回结果集工具类demo

    java语言springboot 二次封装azkaban 实现azkaban 的创建 执行

    1、基于SSM架构,基于springboot实现,可用接口调用 2、azkaban的复杂的依赖配置可以变成简单的参数传递,自动生成flow和上传flow,省去了中间复杂的配置过程,开箱即用 3、接口直接执行azkaban,无需人工登录...

    SpringBoot中封装jdbc工具类

    现在的数据层的开发,大多会使用如MyBatis或...由于部分场景下MyBatis或JPA之类无法满足我的需求,所以我打算自己封装一套查数据库的工具类。 文章地址: https://blog.csdn.net/lxyoucan/article/details/124042295

    基于echarts前后端封装 springboot+jquery+echarts3.x.zip

    - `src/main/java`:包含SpringBoot的业务逻辑,如Controller、Service、Repository等层的Java类。 - `src/main/webapp`:存放前端资源,如HTML、CSS、JavaScript文件。其中,`eval-echarts-master`可能是一个包含...

    java权控系统 springboot 开箱即用

    Java权限控制系统基于Spring Boot的实现,提供了开箱即用的功能,极大地简化了开发流程,减少了开发者在基础架构上的投入,让您可以专注于业务逻辑。这个系统整合了MyBatis和Redis,利用它们各自的优势来实现数据...

    es工具封装,最新的springboot集成jpa和jest,集群

    "es工具封装,最新的springboot集成jpa和jest,集群" 这个标题涵盖了几个关键点: 1. **ES工具封装**:指的是对Elasticsearch(ES)进行了一些定制化的开发,创建了便于使用的工具类或者库,以简化与ES交互的操作。 2...

    java基于springboot的在线考试系统

    支持单选题、多选题、判断题 ...后端采用SpringBoot+JPA++Swagger2+JWT校验,根据不同用户的权限返回给用户不同的数据 后端采用Vue+AntDesign,组件化拆分,封装了很多年公共组件,方便维护和二次开发

    Controller对请求封装和返回

    `Controller对请求封装和返回`这个主题主要涉及如何有效地设计和实现Controller层,以便处理来自客户端的请求,并以适当的方式返回响应数据。ControllerUtils类的引入,通常是为了提供一些通用的方法,帮助简化...

    java 调用okHttp3进行代码测试(SpringBoot项目))

    在Java开发中,SpringBoot框架以其轻量级和便捷性被广泛应用,而OkHttp3则是一个高效的HTTP客户端库,能够优化网络请求性能。本篇文章将深入探讨如何在SpringBoot项目中利用OkHttp3进行各种API调用,包括GET、POST...

    SpringBoot+java+visio类库+com4j,二次开发Visio

    例如,创建一个Controller,接收POST请求,调用上面的`createNewDocument()`方法,然后返回结果给客户端。这样,你就可以通过Web界面或者其他的客户端应用远程控制Visio的绘图过程。 总的来说,Java结合SpringBoot...

    SpringBoot集成TDengine程序Demo

    SpringBoot以其简洁的配置和快速的开发能力深受Java开发者喜爱,而TDengine则是一款高性能、分布式、适用于物联网(IoT)场景的时序数据库系统。本Demo将这两者结合,旨在提供一个快速入门的示例,帮助开发者了解如何...

    基于echarts前后端封装 springboot+jquery+echarts3+源代码+文档说明

    * 后台提供对应的java数据结构,每种图形对应自己的抽象模板类,整个数据对象拼接的过程都已经封装好 * 极大的方便了开发人员,只需关注业务代码和sql语句的实现即可 特点 ==== * 1.使用多种设计模式保证代码的扩展...

    基于SpringBoot的Elasticsearch客户端调用封装工具设计源码

    这是一个基于SpringBoot的Elasticsearch客户端调用封装工具设计,使用Java语言开发,包含42个文件。主要文件类型包括30个Java源文件、2个Properties文件、2个Markdown文档、1个gitignore文件、1个JAR文件、1个...

    java调用C#封装的dll(jna,com)

    java调用C#封装的dll(jna,com)java调用C#封装的dll(jna,com)java调用C#封装的dll(jna,com)

    程序员编程指南 - Java、Spring、SpringBoot等等基础-进阶-源码知识点 & 面试宝典 - 建议使用Obsi

    《程序员编程指南》是一份全面涵盖Java、Spring和SpringBoot等技术的基础到进阶的知识宝典,特别适合希望深入理解并提升技能的开发者。这份资料不仅包含基础编程概念,还涉及高级特性和源码分析,旨在帮助程序员在...

    基于 Java Web 项目的 SpringBoot 框架初始化模板,可基于此快速开发毕设等中小型项目

    基于 Java Web 项目的 SpringBoot 框架初始化模板,该模板整合了常用的框架,保证大家在此基础上能够快速开发自己的项目,该模板针对于后端启动开发小而精,本项目会由作者持续更新。 业务特性: 1、使用 Undertow ...

    SpringJdbcTemplate封装工具类

    - 如果是查询操作,可以使用`RowMapper`或`ResultSetExtractor`来映射结果到Java对象。 8. **性能考虑** 尽管SpringJdbcTemplate提供了便利,但在高并发、大数据量的场景下,可能需要考虑其性能。例如,大量数据...

    Java SpringBoot 支付宝和微信支付整合

    本教程将深入探讨如何在Java SpringBoot框架中整合支付宝和微信支付,以便为用户提供便捷、安全的支付体验。我们将关注扫码支付、APP支付以及JSAPI支付的实现。 首先,让我们了解SpringBoot框架。SpringBoot是基于...

    java springboot 海康威视监控抓拍图片并保存,以及打包

    在项目中,我们看到有一个`HCNetSDK.java`文件,这可能是SDK的Java封装类,包含了连接设备、控制摄像头和抓拍图片等功能。你需要根据SDK文档来理解和使用这些API。 2. **JNA库的使用**: `jna.jar`是Java Native ...

    java springboot 七牛云文件上传,下载,删除

    现在,我们创建一个`QiniuService`类,用于封装七牛云的操作方法。首先,初始化七牛云的配置: ```java @Configuration public class QiniuConfig { @Value("${qiniu.access-key}") private String accessKey; ...

Global site tag (gtag.js) - Google Analytics