zoukankan      html  css  js  c++  java
  • Spring Boot 项目维护全局json数据

    1:概述

    过去 我们在每一个方法中处理前端发过来的请求,需要自己构造请求数据,然后通过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();
        }
    
    
    }
  • 相关阅读:
    SQL2012远程连接到SQL2008时的问题:已成功与服务器建立连接,但在登陆过程中发生错误。
    常用正则表达式
    ASP.NET不拖控件教程(1)-认识JSON
    ASP.NET服务器控件对应的HTML标签
    Apache Ranger 1.1.0源码导入IDEA并运行调试security-admin web模块
    【JDK源码分析】线程池ThreadPoolExecutor原理解析
    【JDK源码分析】同步工具Exchanger,它的内部实现原理你看懂了吗?
    【JDK源码分析】并发包同步工具Semaphore
    【JDK源码分析】并发包同步工具CountDownLatch
    【JDK源码分析】并发包同步工具CyclicBarrier
  • 原文地址:https://www.cnblogs.com/dgwblog/p/12076702.html
Copyright © 2011-2022 走看看