Spring Boot项目维护全局json数据代码实例

作者:---WeiGeH 时间:2023-04-17 23:24:10 

这篇文章主要介绍了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();
 }
}

来源:https://www.cnblogs.com/dgwblog/p/12076702.html

标签:Spring,Boot,项目,json,数据
0
投稿

猜你喜欢

  • Android中判断网络是否可用的代码分享

    2022-01-03 23:59:46
  • c# Newtonsoft 六个值得使用的特性(下)

    2022-02-18 11:38:32
  • Android 高版本API方法在低版本系统上的兼容性处理

    2022-08-22 08:51:53
  • C++实现LeetCode(2.两个数字相加)

    2023-06-23 16:51:11
  • jsp+servlet实现简单登录页面功能(附demo)

    2023-09-24 11:32:28
  • Java用数组实现循环队列的示例

    2022-06-26 15:09:48
  • SpringMVC上传图片与访问

    2023-12-06 17:54:31
  • LINQ排序操作符用法

    2023-10-26 02:19:10
  • Spring JDK动态 代理实现过程详解

    2023-11-16 19:42:15
  • 深入分析JAVA流程控制语句

    2023-11-20 10:48:32
  • 聊一聊Java的JVM类加载机制

    2023-11-08 03:58:37
  • android短信管理器SmsManager实例详解

    2021-09-03 18:17:18
  • Java使用单链表实现约瑟夫环

    2022-02-07 01:19:59
  • Jmeter非GUI模式运行分布式测试

    2021-11-08 12:42:07
  • 解决Android studio 2.3升级到Android studio 3.0 后apt报错问题

    2023-05-17 13:56:50
  • Eclipse+ADT+Android SDK搭建安卓开发环境的实现步骤

    2021-12-20 19:59:32
  • Android可签到日历控件的实现方法

    2023-11-18 15:11:28
  • 解决使用IDEA时跳转到.class的问题

    2022-07-12 20:46:37
  • C# 骑士飞行棋的源码(分享)

    2021-10-11 02:54:56
  • 接口签名怎么用Java实现

    2023-02-18 03:22:10
  • asp之家 软件编程 m.aspxhome.com