자바 방법 공통 반환 결과 집합 패키지 작업

우 리 는 패 키 징 방법 을 사용 할 때 데이터 결과 집합 data 를 되 돌려 야 하 는 것 을 제외 하고 code(또는 status)나 msg 를 되 돌려 야 할 때 도 있 습 니 다.
이때 다음 두 가지 방식 으로 포장 방법의 반환 값 을 진행 할 수 있 습 니 다.
1.결 과 를 되 돌려 받 기 위해 HashMap 을 사용 합 니 다.
1.방법 중의 데 이 터 를 hashmap 에 밀봉 합 니 다.

 public Map<String,Object> result(Object object)
 {
   
   Map<String,Object> result = new HashMap<String, Object>();
   result.put("status", "1");
   result.put("msg", "  ");
   if(  1     )
   {
    result.put("status", "-1");
    result.put("msg", "....");
    return result;
   }
   if(  2     )
   {
    result.put("status", "-1");
    result.put("msg", "....");
    return result;
   }
   //      
   Object data = new Object();
   result.put("data", data);
   return result;
 }
2.방법 호출:

 public void test()
 { 
  
  Map<String,Object> result = this.result(new Object());
  if(!"1".equals(result.get("status").toString())) 
  {
   //     
   return;
  }else 
  {
   //      ,    
   Object data = result.get("data");
   //TODO
  }
 }
2.범용 대상 으로 수신
1.공통 결과 집합 패키지

public class Result<T>
{
 
 private static final String SUCCESS = "1";
 
 private static final String FAIL = "0";
 
 private String code;
 
 private String msg;
 
 private T Data;
 
 public Result(String code)
 {
  this.code = code;
 }
 
 public Result(String code, String msg)
 {
  super();
  this.code = code;
  this.msg = msg;
 }
 
 public Result(String code, String msg, T data)
 {
  super();
  this.code = code;
  this.msg = msg;
  Data = data;
 }
 
 public String getCode()
 {
  return code;
 }
 
 public void setCode(String code)
 {
  this.code = code;
 }
 
 public String getMsg()
 {
  return msg;
 }
 
 public void setMsg(String msg)
 {
  this.msg = msg;
 }
 
 public T getData()
 {
  return Data;
 }
 
 public void setData(T data)
 {
  Data = data;
 }
 
 public static <T> Result<T> ok(T object)
 {
  return new Result<T>(SUCCESS, "", object);
 }
 
 public static <T> Result<T> ok()
 {
  return new Result<T>(SUCCESS);
 }
 
 public static <T> Result<T> nok(String msg)
 {
  return new Result<T>(FAIL, msg);
 }
 
 public static <T> Result<T> nok()
 {
  return new Result<T>(FAIL);
 }
 
 public static <T> Result<T> nok(String code, String msg)
 {
  return new Result<T>(code, msg);
 }
 
 public static <T> Result<T> nok(String code, String msg, T object)
 {
  return new Result<T>(code, msg, object);
 }
 
 public boolean isOk()
 {
  return Result.equals(getCode());
 }
}
2.데이터 T data 를 되 돌려 주 는 방법

public Result<T> result (Object object)
{
  if(  1     )
  {
   return Result.nok("。。。");;
  }
  if(  2     )
  {
   return Result.nok("。。。");;
  }
  
  return Result.ok(T);
}
3.방법 호출:

 public void test
 { 
  
  Result<T> result = this.result(object);
  if(!result.isOk()) 
  {
   //     
   return;
  }else 
  {
   //      ,    
   Object data = result.getData();
   //TODO
  }
 }
보충 지식:자바 백 엔 드 패키지 표준 을 전단 으로 되 돌려 줍 니 다.
일상적인 개발 에서 우리 백 엔 드 와 프론트 엔 드 는 데이터 형식 을 약속 하 는 것 이 좋 습 니 다.백 엔 드 에 데 이 터 를 밀봉 한 다음 에 프론트 엔 드 로 돌아 가면 프론트 엔 드 는 쉽게 해석 할 수 있 습 니 다.다음은 제 가 자주 사용 하 는 템 플 릿 을 정리 한 것 입 니 다.참고 하 실 수 있 습 니 다.
1.대상 생 성
실제 패키지 아래 에 ReturnParam 대상 을 직접 새로 만 듭 니 다.대상 내용 은 성공 적 인 태그,list 결과 집합,totalk 총수(전단 페이지 에 사용)와 확장 가능 한 다른 대상 을 포함 하고 코드 를 직접 보 세 요.

import java.util.List;
 
/**
 * @Author: John
 * @Description:           
 * @Date: 2019/8/3 10:03
 * @param: null
 * @return:
 */
public class ReturnParam<T> {
 
  private Boolean success;  //      
  private List<T> list;    //     
  private int total;     //      
  private Object obj;     //     ,    Map<String, Object>     
 
 
  public Boolean getSuccess() {
    return success;
  }
 
  public void setSuccess(Boolean success) {
    this.success = success;
  }
 
  public List<T> getList() {
    return list;
  }
 
  public void setList(List<T> list) {
    this.list = list;
  }
 
  public int getTotal() {
    return total;
  }
 
  public void setTotal(int total) {
    this.total = total;
  }
 
  public Object getObj() {
    return obj;
  }
 
  public void setObj(Object obj) {
    this.obj = obj;
  }
}
 
2.호출
코드 에서 호출 하면 아래 형식 으로 호출 됩 니 다.아래 에 제 작은 예 를 첨부 합 니 다.

package com.tw.controller;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
/**
 * @Author: John
 * @Description:         
 * @Date: 2019/8/2 21:44
 * @param: null
 * @return: 
 */
@RequestMapping("/debug")
@Controller
public class DebugController {
 
  //  
  private static Logger logger = LoggerFactory.getLogger(DebugController.class);
 
  @GetMapping("/test")
  public ReturnParam test() {
    logger.info("============  debug test  ");
    //List      
    List<String> things = new ArrayList<>();
    things.add("apple");
    things.add("pear");
    things.add("banana");
 
    //      1
    Map<String, String> sort = new HashMap<>();
    sort.put("sort", "fruit");
 
    //         2
    String nama = "John";
    int age = 27;
 
    //  Object  ,         
    Map<String, Object> objectMap = new HashMap<>();
    objectMap.put("sort", sort);
    objectMap.put("name", nama);
    objectMap.put("age", age);
 
    ReturnParam returnParam = new ReturnParam();
    returnParam.setSuccess(true);
    returnParam.setList(things);
    returnParam.setTotal(things.size());
    //obj   qita            
    returnParam.setObj(objectMap); 
    return returnParam;
  }
}
3.돌아 가기
전단 으로 돌아 가 는 데이터 형식 을 보면 깨끗 하고 편안 하 며 강박 증 이 있 는 프로그래머 가 볼 수 있 습 니 다.

4.결어:
개발 과정 에서 많은 정 리 를 해 야 합 니 다.관심 이 있 는 것 을 만나면 손 쉽게 기록 할 수 있 습 니 다.과거 에 지나 간 것 보다 아무것도 남기 지 않 는 것 이 좋 습 니 다.여러분 에 게 참고 가 되 고 많은 응원 을 바 랍 니 다.

좋은 웹페이지 즐겨찾기