SpringBoot/Cloud 统一返回优雅设计+自定义异常

在这里插入图片描述
在这里插入图片描述

文章目录

            • 1. 返回结果封装
            • 2. 自定义异常
            • 3. 校验工具类
            • 4. 使用案例
            • 5. 前端效果图

1. 返回结果封装
package com.course.server.dto;public class ResponseDto<T> {/*** 业务上的成功或失败*/private boolean success = true;/*** 返回码*/private String code;/*** 返回信息*/private String message;/*** 返回泛型数据,自定义类型*/private T content;public String getCode() {return code;}public void setCode(String code) {this.code = code;}public boolean getSuccess() {return success;}public void setSuccess(boolean success) {this.success = success;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public T getContent() {return content;}public void setContent(T content) {this.content = content;}@Overridepublic String toString() {final StringBuffer sb = new StringBuffer("ResponseDto{");sb.append("success=").append(success);sb.append(", code='").append(code).append('\'');sb.append(", message='").append(message).append('\'');sb.append(", content=").append(content);sb.append('}');return sb.toString();}
}
2. 自定义异常
package com.course.server.exception;public class ValidatorException extends RuntimeException {public ValidatorException(String message) {super(message);}
}
3. 校验工具类
package com.course.server.util;import com.course.server.exception.ValidatorException;
import org.springframework.util.StringUtils;public class ValidatorUtil {/*** 空校验(null or "")*/public static void require(Object str, String fieldName) {if (StringUtils.isEmpty(str)) {throw new ValidatorException(fieldName + "不能为空");}}/*** 长度校验*/public static void length(String str, String fieldName, int min, int max) {if (StringUtils.isEmpty(str)) {return;}int length = 0;if (!StringUtils.isEmpty(str)) {length = str.length();}if (length < min || length > max) {throw new ValidatorException(fieldName + "长度" + min + "~" + max + "位");}}}
4. 使用案例
@PostMapping("/save")public ResponseDto save(@RequestBody ChapterDto chapterDto) {// 保存校验ValidatorUtil.require(chapterDto.getName(), "名称");ValidatorUtil.require(chapterDto.getCourseId(), "课程ID");ValidatorUtil.length(chapterDto.getCourseId(), "课程ID", 1, 8);ResponseDto responseDto = new ResponseDto();chapterService.save(chapterDto);responseDto.setContent(chapterDto);return responseDto;}
5. 前端效果图

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516909.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git简介、命令

一、Git 和 SVN 的区别 (一) SVN 优缺点 优点&#xff1a; 管理方便&#xff0c;逻辑明确 易于管理&#xff0c;集中式服务器更能保证安全性 代码一致性非常高 适合开发人数不多的项目开发 缺点&#xff1a; 服务器压力太大&#xff0c;数据库容量暴增 如果不能连接到服…

点游出行提供内地与香港游客高质量的旅程

公司介绍 我们公司是成都市点游出行科技有限责任公司&#xff0c;是一个服务于旅游行业的香港科学园园区企业。业务包括旅游行程规划、出行攻略、旅游视频、智能酒店、旅游酒店预订等等&#xff0c;以APP、小程序、网站等方式在阿里云开展国际旅行业务&#xff0c;APP名称叫做…

赠书 | SkyWalking 观测 Service Mesh 技术大公开

导读&#xff1a;本文摘自于SkyWalking创始人吴晟撰写的《Apache SkyWalking实战》一书&#xff0c;介绍了SkyWalking对Service Mesh的监控模型&#xff0c;并重点阐述了其与Istio的集成。通过本文&#xff0c;希望你对SkyWalking观测Service Mesh场景有深入的了解&#xff0c;…

鼐鼐家为用户打造3D互动体验式营销解决方案

公司介绍 我们公司是上海鼐鼐家软件有限公司&#xff0c;主要业务是装修设计平台&#xff0c;有一个官网和APP&#xff0c;APP是鼐鼐家软件&#xff0c;是我们公司自主研发基于HTML5的WEB 3D 云设计和云渲染技术平台。专业的在线3D设计工具&#xff0c;将领先的Web 3D技术和家居…

vue 集成 sweetalert2 提示组件

文章目录一、项目集成1. 引入方式2. 确认框封装3. 提示框封装4. 确认框使用5. 消息提示框使用6.项目效果一、项目集成 官网链接&#xff1a;https://sweetalert2.github.io 案例 1. 引入方式 CDN引入方式&#xff1a; 在index.html中全局引入 <script src"//c…

vue点击切换css样式

vue动态点击切换css样式 <template><div v-for"i in 5" class"el-personal" :class"{active:isActivei}"click"show(i)">切换css样式</div> </template> <script>export default {data() {return {isA…

基于弹性计算的AI推理

场景描述 本方案适用于使用GPU进行AI在线推理的场 景。在推理之前&#xff0c;模型已经训练完成。例如,刷脸 支付中&#xff0c;我们在刷脸的时候&#xff0c;就是推理的一个过 程。再比如图像分类&#xff0c;目标检测&#xff0c;语音识别&#xff0c;语 义分析等返回结果…

58到家为2000万家庭提供上门生活服务的背后是云计算的高效支撑

客户简介 58到家是以提供上门服务为核心业务的互联网生活服务平台&#xff0c;服务涵盖家政、搬家、快狗、洗车、汽车陪练、推拿按摩等众多领域。在上门O2O模式的三年深耕细作下&#xff0c;深入触达全国30余个城市的160万上门服务人员&#xff0c;并带给2000万家庭用户便捷和安…

vue 集成 sweetalert2 前端校验

文章目录1. 集成 sweetalert22. 校验工具类抽象3. 校验工具类4. 使用5. 效果图6. 后端集成1. 集成 sweetalert2 官网&#xff1a;https://sweetalert2.github.io 在index.html引入 <script src"//cdn.jsdelivr.net/npm/sweetalert211"></script>2. 校验…

vue动态点击切换css样式且子元素动态显示和隐藏

vue动态点击切换css样式并子元素动态显示和隐藏 <template><div v-for"i in 5" class"el-personal" :class"{active:isActivei}"click"show(i)">切换css样式<div click"clickbj(i)"> //i 为父元素 fo…

vue 集成 Loading 加载效果

文章目录1. 工具类2. 插件官网3. 导入js4.. 使用5. 效果图1. 工具类 Loading {show: function () {$.blockUI({message: <img src"/static/image/loading.gif" />,css: {zIndex: "10011",padding: "10px",left: "50%",width: …

永远不要对 AI 说:“我不行!”

最近这些年&#xff0c;如果我要问什么技术最值钱&#xff0c;我想超过90%的人都会说是&#xff1a;人工智能。确实&#xff0c;随着近些年人工智能发展与普及&#xff0c;AI研发岗早已成为编程领域薪水最高的岗位之一。但扎心的是&#xff0c;一提到 AI &#xff0c;相信绝大部…

G20杭州峰会上云 实现0安全事件

客户简介 二十国集团&#xff08;G20&#xff09;由七国集团财长会议于1999年倡议成立&#xff0c;由阿根廷、澳大利亚、巴西、加拿大、中国、法国、德国、印度、印度尼西亚、意大利、日本、韩国、墨西哥、俄罗斯、沙特阿拉伯、南非、土耳其、英国、美国以及欧盟等20方组成。国…

vue解决字符串模板@click无效的问题

在同一函数下 进行操作 window.clickEvent this.clickEvent;// 解决字符串模板click无效的问题 let str<span class"uliao-news-item" style"color:#0079fe;" οnclick"clickEvent()"> 点击 </span> 然后在methods中直接调用 ​…

SringBoot/Cloud/Aalibab 事务管理

文章目录1. 事务管理场景2. 使用说明3. 事务失效场景1. 事务管理场景 当方法内部操作多张表时&#xff0c;应该添加事务管理&#xff0c;保证原子性&#xff08;同时成功或者同时失败&#xff09; 2. 使用说明 添加EnableTransactionManagement注解 在具体的方法上添加Trans…

CPU:别再拿我当搬砖工!

来源 | 编程技术宇宙责编 | 晋兆雨封图 | CSDN 下载自视觉中国数据搬运工Hi&#xff0c;我是CPU一号车间的阿Q&#xff0c;有段日子没见面了。还记得上回说到咱们厂里用上了DMA技术&#xff08;太慢不能忍&#xff01;CPU又拿硬盘和网卡开刀了&#xff01;&#xff09;之后&…

用函数计算搭建页面的前端CICD系统,提升访问体验

场景描述 传统动静不分离的产品架构&#xff0c;随着访问量在增长&#xff0c;性能会成为瓶颈。在这种情况下&#xff0c;用户可以通过利用OSS和CDN对网站进行架构优化&#xff0c;做到网站文件的动静分离&#xff0c;提升用户访问体验&#xff0c;实现成本可控。本方案使用函…

构建电商网站业务安全系统,防止“薅羊毛”

构建电商网站业务安全系统&#xff0c;防止“薅羊毛” 2020-02-19 新零售安全 场景描述 业务运营活动是电商行业开展业务必不可少的手段&#xff0c;但大流量带来的系统可用性、优惠券带来的“薅羊毛”等问题屡见不鲜&#xff0c;都会影响到运营效果、甚至出现负面影响。阿里云…

data.name.toLowerCase() is not a function问题

文章目录1. 现象2. 分析3. 解决方案1. 现象 Error in v-on handler: "TypeError: suffixs[i].toLowerCase is not a function" 2. 分析 主要原因是.toLowerCase()方法需要前面是字符串类型 3. 解决方案 案例&#xff1a; (data.name ) .toLowerCase()源码 修改…

安装Vue脚手架

修改NPM全局安装的默认路径&#xff08;不要轻易操作&#xff09; 查看当前的全局安装路径 npm config ls安装指定的目录安装node.js&#xff0c;例如&#xff1a; c:\nodejs。 node.js安装完成之后&#xff0c;需要在 c:\node.js 目录下创建两个文件夹&#xff1a; c:\nod…