1. 程式人生 > 程式設計 >Spring Boot專案維護全域性json資料程式碼例項

Spring Boot專案維護全域性json資料程式碼例項

這篇文章主要介紹了Spring Boot專案維護全域性json資料程式碼例項,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

概述

過去 我們在每一個方法中處理前端發過來的請求,需要自己構造請求資料,然後通過spring 提供的@ResponseBody 強制轉為JSON資料嗎,實際上出現了很多重複的程式碼,我麼亦可以通過構造一個

工具類,實現只關注需要改變的資料. 下面給出這個工具類.

public class JsonMsg {
  private int code;
  private String msg;
  private Map<String,Object> extendInfo = new HashMap<>();

  public int getCode() {
    return code;
  }

  public void setCode(int code) {
    this.code = code;
  }

  public String getMsg() {
    return msg;
  }

  public void setMsg(String msg) {
    this.msg = msg;
  }

  public Map<String,Object> getExtendInfo() {
    return extendInfo;
  }

  public void setExtendInfo(Map<String,Object> extendInfo) {
    this.extendInfo = extendInfo;
  }
  public static JsonMsg success(){
    JsonMsg res = new JsonMsg();
    res.setCode(100);
    res.setMsg("操作成功!");
    return res;
  }
  public static JsonMsg fail(){
    JsonMsg res = new JsonMsg();
    res.setCode(200);
    res.setMsg("操作失敗!");
    return res;
  }
  public JsonMsg addInfo(String key,Object obj){
    this.extendInfo.put(key,obj);
    return this;
  }
}

下面我給出具體的使用示例:

就是一個普通的CRUD程式碼

package com.hrms.controller;
import com.hrms.bean.Department;
import com.hrms.service.DepartmentService;
import com.hrms.util.JsonMsg;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

import java.util.List;

/**
 * @author GenshenWang.nomico
 * @date 2018/3/8.
 */
@Controller
@RequestMapping(value = "/hrms/dept")
public class DepartmentController {

  @Autowired
  DepartmentService departmentService;

  /**
   * 刪除
   * @param deptId
   * @return
   */
  @RequestMapping(value = "/delDept/{deptId}",method = RequestMethod.DELETE)
  @ResponseBody
  public JsonMsg deleteDept(@PathVariable("deptId") Integer deptId){
    int res = 0;
    if (deptId > 0){
      res = departmentService.deleteDeptById(deptId);
    }
    if (res != 1){
      return JsonMsg.fail().addInfo("del_dept_error","刪除異常");
    }
    return JsonMsg.success();
  }

  /**
   * 部門更改
   * @param deptId
   * @param department
   * @return
   */
  @RequestMapping(value = "/updateDept/{deptId}",method = RequestMethod.PUT)
  @ResponseBody
  public JsonMsg updateDeptById(@PathVariable("deptId") Integer deptId,Department department){

    int res = 0;
    if (deptId > 0){
      res = departmentService.updateDeptById(deptId,department);
    }
    if (res != 1){
      return JsonMsg.fail().addInfo("update_dept_error","部門更新失敗");
    }
    return JsonMsg.success();
  }

  /**
   * 新增部門
   * @param department
   * @return
   */
  @RequestMapping(value = "/addDept",method = RequestMethod.PUT)
  @ResponseBody
  public JsonMsg addDept(Department department){
    int res = departmentService.addDept(department);
    if (res != 1){
      return JsonMsg.fail().addInfo("add_dept_error","新增異常!");
    }
    return JsonMsg.success();
  }

  /**
   * 查詢部門資訊總頁碼數
   * @return
   */
  @RequestMapping(value = "/getTotalPages",method = RequestMethod.GET)
  @ResponseBody
  public JsonMsg getTotalPages(){

    //每頁顯示的記錄行數
    int limit = 5;
    //總記錄數
    int totalItems = departmentService.getDeptCount();
    int temp = totalItems / limit;
    int totalPages = (totalItems % limit== 0) ? temp : temp+1;

    return JsonMsg.success().addInfo("totalPages",totalPages);
  }

  /**
   *
   */

  @RequestMapping(value = "/getDeptById/{deptId}",method = RequestMethod.GET)
  @ResponseBody
  public JsonMsg getDeptById(@PathVariable("deptId") Integer deptId){
    Department department = null;
    if (deptId > 0){
      department = departmentService.getDeptById(deptId);
    }
    if (department != null){
      return JsonMsg.success().addInfo("department",department);
    }
    return JsonMsg.fail().addInfo("get_dept_error","無部門資訊");
  }

  /**
   * 分頁查詢:返回指定頁數對應的資料
   * @param pageNo
   * @return
   */
  @RequestMapping(value = "/getDeptList",method = RequestMethod.GET)
  public ModelAndView getDeptList(@RequestParam(value = "pageNo",defaultValue = "1") Integer pageNo){
    ModelAndView mv = new ModelAndView("departmentPage");
    //每頁顯示的記錄行數
    int limit = 5;
    //總記錄數
    int totalItems = departmentService.getDeptCount();
    int temp = totalItems / limit;
    int totalPages = (totalItems % limit== 0) ? temp : temp+1;
    //每頁的起始行(offset+1)資料,如第一頁(offset=0,從第1(offset+1)行資料開始)
    int offset = (pageNo - 1)*limit;
    List<Department> departments = departmentService.getDeptList(offset,limit);

    mv.addObject("departments",departments)
        .addObject("totalItems",totalItems)
        .addObject("totalPages",totalPages)
        .addObject("curPageNo",pageNo);
    return mv;
  }
  /**
   * 查詢所有部門名稱
   * @return
   */
  @RequestMapping(value = "/getDeptName",method = RequestMethod.GET)
  @ResponseBody
  public JsonMsg getDeptName(){
    List<Department> departmentList = departmentService.getDeptName();
    if (departmentList != null){
      return JsonMsg.success().addInfo("departmentList",departmentList);
    }
    return JsonMsg.fail();
  }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。