Spring Boot項(xiàng)目維護(hù)全局json數(shù)據(jù)代碼實(shí)例
這篇文章主要介紹了Spring Boot項(xiàng)目維護(hù)全局json數(shù)據(jù)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
概述
過(guò)去 我們?cè)诿恳粋€(gè)方法中處理前端發(fā)過(guò)來(lái)的請(qǐng)求,需要自己構(gòu)造請(qǐng)求數(shù)據(jù),然后通過(guò)spring 提供的@ResponseBody 強(qiáng)制轉(zhuǎn)為JSON數(shù)據(jù)嗎,實(shí)際上出現(xiàn)了很多重復(fù)的代碼,我么亦可以通過(guò)構(gòu)造一個(gè)
工具類(lèi),實(shí)現(xiàn)只關(guān)注需要改變的數(shù)據(jù). 下面給出這個(gè)工具類(lèi).
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; }}
下面我給出具體的使用示例:
就是一個(gè)普通的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(); } /** * 部門(mén)更改 * @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', '部門(mén)更新失敗'); } return JsonMsg.success(); } /** * 新增部門(mén) * @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(); } /** * 查詢(xún)部門(mén)信息總頁(yè)碼數(shù) * @return */ @RequestMapping(value = '/getTotalPages', method = RequestMethod.GET) @ResponseBody public JsonMsg getTotalPages(){ //每頁(yè)顯示的記錄行數(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', '無(wú)部門(mén)信息'); } /** * 分頁(yè)查詢(xún):返回指定頁(yè)數(shù)對(duì)應(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'); //每頁(yè)顯示的記錄行數(shù) int limit = 5; //總記錄數(shù) int totalItems = departmentService.getDeptCount(); int temp = totalItems / limit; int totalPages = (totalItems % limit== 0) ? temp : temp+1; //每頁(yè)的起始行(offset+1)數(shù)據(jù),如第一頁(yè)(offset=0,從第1(offset+1)行數(shù)據(jù)開(kāi)始) 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; } /** * 查詢(xún)所有部門(mén)名稱(chēng) * @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(); }}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. CSS清除浮動(dòng)方法匯總2. js開(kāi)發(fā)中的頁(yè)面、屏幕、瀏覽器的位置原理(高度寬度)說(shuō)明講解(附圖)3. HTML5實(shí)戰(zhàn)與剖析之觸摸事件(touchstart、touchmove和touchend)4. CSS百分比padding制作圖片自適應(yīng)布局5. vue跳轉(zhuǎn)頁(yè)面常用的幾種方法匯總6. 不要在HTML中濫用div7. XML入門(mén)的常見(jiàn)問(wèn)題(三)8. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)9. 深入了解React中的合成事件10. TypeScript實(shí)現(xiàn)十大排序算法之歸并排序示例詳解
