Spring Boot項目維護全局json數(shù)據(jù)代碼實例
這篇文章主要介紹了Spring Boot項目維護全局json數(shù)據(jù)代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
概述
過去 我們在每一個方法中處理前端發(fā)過來的請求,需要自己構(gòu)造請求數(shù)據(jù),然后通過spring 提供的@ResponseBody 強制轉(zhuǎn)為JSON數(shù)據(jù)嗎,實際上出現(xiàn)了很多重復(fù)的代碼,我么亦可以通過構(gòu)造一個
工具類,實現(xiàn)只關(guān)注需要改變的數(shù)據(jù). 下面給出這個工具類.
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(); } /** * 查詢部門信息總頁碼數(shù) * @return */ @RequestMapping(value = "/getTotalPages", method = RequestMethod.GET) @ResponseBody public JsonMsg getTotalPages(){ //每頁顯示的記錄行數(shù) int limit = 5; //總記錄數(shù) 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", "無部門信息"); } /** * 分頁查詢:返回指定頁數(shù)對應(yīng)的數(shù)據(jù) * @param pageNo * @return */ @RequestMapping(value = "/getDeptList", method = RequestMethod.GET) public ModelAndView getDeptList(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo){ ModelAndView mv = new ModelAndView("departmentPage"); //每頁顯示的記錄行數(shù) int limit = 5; //總記錄數(shù) int totalItems = departmentService.getDeptCount(); int temp = totalItems / limit; int totalPages = (totalItems % limit== 0) ? temp : temp+1; //每頁的起始行(offset+1)數(shù)據(jù),如第一頁(offset=0,從第1(offset+1)行數(shù)據(jù)開始) 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(); } }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
IntelliJ?IDEA?2022.2最新版本激活教程(親測可用版)永久激活工具分享
Jetbrains官方發(fā)布了?IntelliJ?IDEA2022.2?正式版,每次大的版本更新,都會有較大的調(diào)整和優(yōu)化,除本次更新全面擁抱?Java?17?外,還有對IDE?UI界面,安全性,便捷性等都做了調(diào)整和優(yōu)化完善,用戶體驗提升不少,相信后面會有不少小伙伴跟著更新2022-08-08Java Timezone類常見問題_動力節(jié)點Java學院整理
這篇文章主要介紹了Java Timezone類常見問題的相關(guān)資料,需要的朋友可以參考下2017-05-05java使用FFmpeg合成視頻和音頻并獲取視頻中的音頻等操作(實例代碼詳解)
這篇文章主要介紹了java使用FFmpeg合成視頻和音頻并獲取視頻中的音頻等操作,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02解決Maven本地倉庫明明有對應(yīng)的jar包但還是報找不到的問題
這篇文章主要介紹了解決Maven本地倉庫明明有對應(yīng)的jar包但還是報找不到的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10Spring Boot教程之利用ActiveMQ實現(xiàn)延遲消息
這篇文章主要給大家介紹了關(guān)于Spring Boot教程之利用ActiveMQ實現(xiàn)延遲消息的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring Boot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-11-11jmeter添加自定函數(shù)的實例(jmeter5.3+IntelliJ IDEA)
這篇文章主要介紹了jmeter添加自定函數(shù)的實例(jmeter5.3+IntelliJ IDEA),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11Java File類 mkdir 不能創(chuàng)建多層目錄的解決
這篇文章主要介紹了Java File類 mkdir 不能創(chuàng)建多層目錄的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09