springboot怎么返回404_SpringBoot(二十)_404返回统一异常处理结果

1.修改application.properties文件# 自定义404

#出现错误时, 直接抛出异常

spring.mvc.throw-exception-if-no-handler-found=true

#不要为我们工程中的资源文件建立映射

spring.resources.add-mappings=false

2.添加controller增强处理if (e instanceof NoHandlerFoundException) {

return ResultUtil.error(ResultEnum.NO_HANDLER_FOUND_ERROR);

}

3.测试

访问 http://localhost:8080/hello1

// 20190705114619

// http://localhost:8080/hello1

{

"code": 404,

"msg": "接口不存在",

"data": null

}

4.完整controller增强处理类package com.kevin.common.exception;

import com.kevin.common.entity.Result;

import com.kevin.common.enums.ResultEnum;

import com.kevin.common.util.ResultUtil;

import lombok.extern.slf4j.Slf4j;

import org.springframework.validation.BindException;

import org.springframework.validation.ObjectError;

import org.springframework.web.bind.MethodArgumentNotValidException;

import org.springframework.web.bind.annotation.ExceptionHandler;

import org.springframework.web.bind.annotation.RestControllerAdvice;

import org.springframework.web.servlet.NoHandlerFoundException;

import java.util.List;

/**

* 异常处理器

*

* @author kevin

* @date 2019/7/4 14:46

*/

@RestControllerAdvice

@Slf4j

public class KevinExceptionHandler {

@ExceptionHandler(Exception.class)

public Result handleException(Exception e) {

log.error(e.getMessage(), e);

if (e instanceof KevinException) {

return ResultUtil.error(e.getMessage());

} else if (e instanceof NoHandlerFoundException) {

return ResultUtil.error(ResultEnum.NO_HANDLER_FOUND_ERROR);

} else if (e instanceof IllegalArgumentException) {

return ResultUtil.error(e.getMessage());

} else if (e instanceof IllegalStateException) {

return ResultUtil.error(e.getMessage());

} else if (e instanceof BindException) {

BindException ex = (BindException) e;

List allErrors = ex.getAllErrors();

ObjectError error = allErrors.get(0);

String defaultMessage = error.getDefaultMessage();

return ResultUtil.error(defaultMessage);

} else if (e instanceof MethodArgumentNotValidException) {

MethodArgumentNotValidException ex = (MethodArgumentNotValidException) e;

List errors = ex.getBindingResult().getAllErrors();

String message = errors.get(0).getDefaultMessage();

return ResultUtil.error(message);

} else {

return ResultUtil.error(ResultEnum.UNKNOW_ERROR);

}

}

}

好了玩的开心

最近在整合一个springboot2.X的框架。里面就集成了这块,有兴趣的可以下载下来看看

地址:https://github.com/FunCodingOfWe/kevin-boot

欢迎start

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

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

相关文章

android 通知垃圾回收,Android中垃圾回收日志信息

原因GC_CONCURRENTfreed 178K, 41% free 3673K/6151K, external 0K/0K, paused 2ms2msGC_EXPLICITfreed 6K, 41% free 3667K/6151K, external 0K/0K, paused 29ms红颜色标出的部分就是垃圾回收触发的原因。在Android中有五种类型的垃圾回收触发原因。GC_CONCURRENT当堆内存增长…

5个令人震惊的统计数据证明日志不足

事实证明,我们都犯有记录不当行为的罪行。 不相信我们吗? 这些统计数据可能会改变您的想法 当人们提出带有明显答案的问题时,这非常令人不快,因此,我不会坐在这里问您和您的团队是否使用日志文件来监视预生产和生产环…

linearregression_机器学习-TensorFlow建模过程 Linear Regression线性拟合应用

TensorFlow是咱们机器学习领域非常常用的一个组件,它在数据处理,模型建立,模型验证等等关于机器学习方面的领域都有很好的表现,前面的一节我已经简单介绍了一下TensorFlow里面基础的数据结构即:Tensor和Dataset&#x…

yum配置文件 重启后还原_江湖救急 : CentOS7.5 /usr 目录误删, 恢复操作.

一.概述前两天在网上找了个脚本,看着没问题,直接复制粘贴了. 结果有特殊字符,直接换行.执行了 rm -rf /usr 目录. 然后就傻了,各种操作命令找不到, 无法登陆.......万分幸运的是,数据没丢,要是丢了.那我就要命了1.如果可以进入操作系统,并且可以正常操作的话. 依旧会存在隐患.…

html页面调用存储过程,用WebBrowser实现HTML界面的应用

HTML的界面有以下特点:图文混排,格式灵活,可以包含Flash、声音和视频等,实现图文声像的多媒体界面,而且易于建立和维护。另外,HTML的显示环境一般机器上都具备,通常不需要安装额外的软件。当然&…

凡事多找找自己的原因_布袋除尘器灰斗积粉过多、堵灰该咋办?别急,从这8个方面找原因...

灰斗布置在袋室的下部,它除了存放收集下来的粉尘以外,还作为下进气总管使用,当含尘气体进入袋室前先进入灰斗,由于灰斗内容积较大,使得气流速度降低,加之气流方向的改变,使得较粗的尘粒在这里得…

javaone_Javaone 2013评论

javaonetl; dr我今年再次参加了Javaone。 好玩。 星期日 会议于周日开幕,进行了用户组会议和主要主题演讲。 由于我正在运行Java大学关于Java SE 7和8的新功能的培训课程,因此我实际上无法参加这些课程。该课程涵盖了Java 7的项目硬币,NIO 2…

python怎么改变字体大小_Python-docx 整体修改或者部分修改文字的大小和字体类型...

Python中可以用docx来生成word文档,docx中可以自定义文字的大小和字体等。 其中要整体修改文字的字体大小和字体,可以用以下方法: newfile docx.Document() newfile.styles[Normal].font.name Times New Roman newfile.styles[Normal]._ele…

html输入框点击后去掉默认文字颜色,input的一些默认样式的更改

1.Chrome浏览器下,记住密码之后,输入框为黄色的背景,/*忘记密码后的黄色背景的去除*//*只对非透明的纯色背景有效*/input:-webkit-autofill{-webkit-box-shadow: 0 0 0 1000px white inset !important;}/*适用于背景为透明色的输入框*/input:…

cad设计院常用字体_如何把CAD图纸坐标转换成现场坐标?

使用CAD软件画建筑施工图是很常见的,特别是在施工现场,为了不受现场场地落差的影响,需要使用全站仪,但是使用全站仪需要把CAD图纸转换成CAD坐标,很多人可能并不知道该怎么转换,下面我们就来介绍一下如何把图…

sqlserver select 数值精度_SQL Server读懂语句运行 (二) SET STATISTICS IO ON

对于语句的运行,除了执行计划本身,还有一些其他因素要考虑,例如语句的编译时间、执行时间、做了多少次磁盘读等。这些信息对分析问题很有价值。1 SET STATISTICS TIME ON 2 SET STATISTICS IO ON 3 SET STATISTICS PROFILE ON今天&#xff0c…

.net webservice studio调用方法传参_springboot整合WebService简单版

一.什么是webservice这里给大家分享一下我们的专栏《Java 进阶集中营》,每天都会给大家分享一个最新的java技术内容,有优秀的技术讯息,也欢迎分享在我的专栏里。JAVA 进阶集中营​zhuanlan.zhihu.com二.springboot整合webservice 整合webserv…

如何用html5编写彩色同心圆,HTML5 canvas 同心圆动画

原创。产生的动画效果:* 生成文字渐变颜色随时间的变化。* 使得一组同心圆的取色,随时间而变化1.[图片] open_source.png2.[代码][JavaScript]代码var cnew Array("red","blue","cyan","darkGray","green&…

swiper如何防止冲突_冲突管理:化冲突为机会的8个谈话技巧,从此告别争吵和冷战...

书语人间:每天10分钟,读懂1本好书,点击文章右边的「关注」,一起成长大家好呀~今天,灵遥将继续为你带来《解决冲突的关键技巧:如何增加你的有效社交》一书的共读。上一篇里,我们读到了让聆听和谈…

spss非线性回归分析步骤_SPSS与简单线性回归分析

对数据进行简单线性回归分析常按照以下步骤:1根据研究目的确定因变量和自变量现研究某服装店销售额和客流量的关系,销售额为因变量,客流量为自变量,共计36条数据。2 判断有无异常值判断方法:⑴通过绘制散点图直观观察&…

计算机网络由核心通信,计算机网络系统是由通信子网和什么构成的

计算机网络系统是一个集计算机硬件设备、通信设施、软件系统及数据处理能力为一体的,能够实现资源共享的现代化综合服务系统。计算机网络系统的组成可分为三个部分,即硬件系统,软件系统及网络信息系统。1. 硬件系统硬件系统是计算机网络的基础。硬件系统有计算机、通信设备、连…

jwt私钥和公钥怎么获取_jwt 用rsa公钥私钥进行验证(python发送,java接受)

JWT的主要应用场景身份认证在这种场景下,一旦用户完成了登陆,在接下来的每个请求中包含JWT,可以用来验证用户身份以及对路由,服务和资源的访问权限进行验证。由于它的开销非常小,可以轻松的在不同域名的系统中传递&…

通过OAuth 2.0和Okta构建具有安全的服务器到服务器通信的Spring Boot应用

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 大多数OAuth 2.0指南都围绕用户的上下文,即使用Google,Github…

springboot java获取版本号_深入实践Spring Boot 实战篇,大佬整理出的PDF文档

如何使用Spring Boot 本文章将会详细介绍如何使用Spring Boot。它覆盖了构建系统,自动配置和运行/部署选项等主题。我们也覆盖了一些Spring Boot最佳实践。尽管Spring Boot没有什么特别的(只是一个你能消费的库),但仍有一些建议,如果你遵循的…

vue v html安全,vue 中控制v-html 中的样式,但不影响全局的小技巧

我们知道在 Vue 中,style可以用两种方式来导入:// method1import (./a.css);//method2复制代码但是不管哪一种,导进的css文件都是应用于全局的,有时候我们不想要这样的效果。而要使得css只对当前的组件有效,即局部应用…