在昨天的文章最后,我提到一个问题,就是我的例子对错误处理的设计不够。按照RESTful的设计,既然请求是借助HTTP的方法,那么返回信息也应该借助HTTP的状态码和其他信息。经过查找资料,决定将这篇文章中提到的例子实践一次,并用我的话总结下。首先我们需要新建一个简单的Controller,代码如下:@RestController class GreetingController { @R
转载 2024-06-19 20:15:13
369阅读
返回http code在使用spring boot开发rest接口的时候,如果在controller中出现了未处理的异常,默认会返回500错误。如果我们希望在某些条件下返回一个特定的HTTP CODE(如404),可以这么做@RequestMapping("/student/{name}") public ResponseEntity<?> getStudent(@PathVariab
目录适用场景实现方法结合Servlet对象@RestControllerAdvice适用场景通常前后端交互时,后端对前端参数进行校验后,对于校验不通过的信息会自定义一个异常抛出,但是后端一旦抛出异常,后台接口服务就会报500的错误对于有些逻辑错误而言,我们只是想将此信息提示给用户,这时候我们需要将抛出来的异常进行捕获,然后封装成提示信息返回给前端,最常见的就是try catch。@RequestM
转载 2024-04-02 11:23:08
216阅读
该文SpringBoot版本:2.3.4 SpringBoot的web场景中,底层依然使用的是SpringMVC,框架会根据请求url找到它对应的handler,然后再找到该handler的handlerAdapter,handlerAdapter先回处理handler(controller.method())的形参,然后执行该方法,并返回方法的返回值,对应源码ServletInvocableHa
转载 2024-06-25 15:17:42
149阅读
200105-SpringBoot 系列 web 篇之自定义返回 Http Code 的 n 种姿势虽然 http 的提供了一整套完整、定义明确的状态码,但实际的业务支持中,后端并不总会遵守这套规则,更多的是在返回结果中,加一个 code 字段来自定义业务状态,即便是后端 5xx 了,返回给前端的 http code 依然是 200那么如果我想遵守 http 的规范,不同的 case 返
http post 415错误的解决方法前面在spring boot项目中,进行前后端数据交互时突然遇到了415错误。一时间有点懵,在网上找了一些资料,总算是知道为什么了,不多说,直接上图。这是正常的form提交的数据。debug之后能够服务器能够正常的接收数据。当请求数据的格式变成json时,此时debug之后发现并没有数据传入。并且还报出了Resolved exception caused b
spring boot quick start在spring boot里,很吸引人的一个特性是可以直接把应用打包成为一个jar/war,然后这个jar/war是可以直接启动的,不需要另外配置一个Web Server。如果之前没有使用过spring boot可以通过下面的demo来感受下。 下面以这个工程为例,演示如何启动Spring boot项目:git clone git@github
转载 2024-06-24 20:48:17
80阅读
自定义异常使用场景正常情况数据返回异常情况下数据返回一、自定义异常二、 自定义异常拦截器三、 异常结果集类四、 改造异常拦截器五、 自定义枚举类 : 模仿ResponseEntity六、改造自定义异常类七、最终的效果 使用场景前后端分离的项目,后端在处理过程需要给前端返回数据结果,但我们发现,在正常情况下只能返回200状态码,在异常情况下只能返回500状态码。显然这不满足我们的需求!正常情况数据
转载 2024-02-22 13:48:46
148阅读
当前源码:spring-boot 2.2.5.RELEASE版本!1.声明当前内容用于本人复习和学习用,更加深入理解SpringBoot中的执行过程。本内容为:1.通过实现方式创建自己的ErrorViewResolver,或者实现ErrorController方式2.使用自定义的错误视图,告别SpringBoot默认提供的StaticView3.更加深入了解Spring的访问机制2.Spring的
1 数据响应 响应页面是指发送一个请求,跳转指定页面。响应页面是来开发一些单体项目(即前后端都在一个开发工具中);响应数据是用来开发前后端分离的项目,前端发送过来请求后端响应相应的数据。1.1 响应数据——JSON如果想让SpringMVC响应返回一个JSON类型的数据,首先需要在项目的pom.xml文件中导入web场景的启动器spring-boot-starter-web,spring-boot
背景越来越多的项目开始基于前后端分离的模式进行开发,这对后端接口的报文格式便有了一定的要求。通常,我们会采用JSON格式作为前后端交换数据格式,从而减少沟通成本等。报文基本格式一般报文格式通常会包含状态码、状态描述(或错误提示信息)、业务数据等信息。 在此基础上,不同的架构师、项目搭建者可能会有所调整。 但从整体上来说,基本上都是大同小异。在SpringBoot项目中,通常接口返回的报文中至少包含
转载 2024-01-21 05:57:34
523阅读
分享一下我封装好的转换工具类public enum HttpErrorStateConverter { /* 客户端错误 */ BAD_REQUEST(400, "由于包含语法错误,当前请求无法被服务器理解"), UNAUTHORIZED(401, "请求需要用户验证"), PAYMENT_REQUIRED(402, "非标准客户端错误状态响应码"),
1、统一响应数据格式的json统一json格式的response,如添加一条数据失败的时候的响应码是1而不是500,{     "code": 1,     "msg": "年龄需要大于6岁",     "data": null }{     "code": 0,     "msg": "成功",
Spring Boot 统一响应 文章目录Spring Boot 统一响应一. 前言二. 统一响应2.1 字段2.2 错误码2.3 统一响应类三. 调用测试3.1 接口层代码3.2 UT测试用例 一. 前言前后端交互时,后端会提供RESTful API接口供前端调用,前端调用后,需要响应前端该接口是否调用成功:成功:数据回显到前端,并渲染给客户失败:失败的信息提示回显给前端,并给用户提示但响应的同
转载 2023-11-29 14:11:14
144阅读
一、错误处理原理分析使用SpringBoot创建的web项目中,当我们请求的页面不存在(http状态码为404),或者器发生异常(http状态码一般为500)时,SpringBoot就会给我们返回错误信息。也就是说,在SpringBoot的web项目中,会自动创建一个/error的错误接口,来返回错误信息。但是针对不同的访问方式,会有以下两种不同的返回信息。这主要取决于你访问时的http头部信息的
转载 2024-02-22 14:32:41
1187阅读
一、基础响应        前后端分离一定会设计到数据传输。因此,每个项目必定都有一个基础的响应类。        我就以我个人的经验编写这个类吧。定义基础:响应码code、响应信息message、传输的数据data、总记录数。        定义两个基础的构造函数,再定义两个通
转载 2024-04-01 14:41:30
216阅读
1. Spring 事务机制目前市面上所有的数据访问存储技术都支持事务处理机制,用于提供给 API 开启事务、提交事务、回滚操作等。Spring 支持声明式事务,即使用注解来选择需要使用事务的方法,使用@Transactional注解在方法上表明该方法需要事务支持。在该方法被调用时,Spring 会开启一个新事务。Spring Boot 使用事务支持非常方便,首先在配置类或者启动类中加上开启事务的
转载 2024-09-12 15:52:32
92阅读
————————————————————————————————————————— *** 响应的数据格式  HTTP/1.1 200 OK  Server: Apache-Coyote/1.1  Accept-Ranges: bytes  ETag: W/"27-1
description: SpringBoot统一异常和Http响应1. 消息体1.1. 正常响应1.2. 异常响应2. 拦截器2.1. Annoation注解2.2. 拦截器2.3. 全局异常3. 例子4. 源码地址,如果觉得对你有帮助,请Star我们在开发前端和后端进行交互服务过程中,受制于前后端的工作职责明确,在交互协议的定义上理解也较为不同,造成一个项目服务中重复定义交互内容以及编码上重
一.jsp返回页面:1.项目结构图:这是打成war包,因为springboot打jar包,webapp文件不会被打进去,虽然可以通过插件实现,但是有点麻烦,这里打成war包执行也可通过 java -jar xx.war的形式运行 2.pom文件,依赖上都带有注释:注意<packaging>war</packaging><?xml version="1.0"
转载 2024-03-20 12:26:07
97阅读
  • 1
  • 2
  • 3
  • 4
  • 5