概览 本文将举例说明如何使用Spring来实现REST API的异常处理。我们将同时考虑Spring 3.2和4.x推荐的解决方案,同时也会考虑以前的解决方案。...例如,这些控制器可能不能直接修改,或者一些控制器可能已经从别的基类扩展,而这个基类可能在另一个jar中或者不能直接修改。...理想情况下,我们希望能够输出JSON或XML,这取决于客户端请求的格式(通过Accept头)。...MVC – 自定义错误页 首先,让我们看一下MVC风格的解决方案,看看如何定制一个拒绝访问的错误页面: 使用XML配置: <intercept-url pattern="/admin...总结 本教程讨论了在<em>Spring</em>中实现<em>REST</em> API异常处理机制的几种方法,<em>从</em>旧的机制开始,然后是<em>Spring</em> 3.2中的,最后是4.x和5.x中的。
如果需要改变输出的 JSON 表达的格式,可以使用另外一种封装方式的 ListResource 类,如代码清单 6所示。 清单 6....对于一个典型的 Spring MVC 控制器来说,其声明如代码清单 10所示。 清单 10....上面介绍的是通过 Spring MVC 控制器来创建链接,另外一种做法是从模型类中创建。这是因为控制器通常用来暴露某个模型类。...文档用来告诉客户端如何对该链接所指向的资源进行操作。当开发人员获取到了资源的表达之后,可以通过查看链接指向的文档来了解如何操作该资源。...在启用超媒体支持之后,应用需要进行相关的定制使得生成的 HAL 表达更加友好。
你将建造什么 您将使用 Spring HATEOAS 构建一个超媒体驱动的 REST 服务:一个 API 库,可用于创建指向 Spring MVC 控制器的链接、构建资源表示并控制如何将它们呈现为支持的超媒体格式...正如您将在本指南后面看到的那样,Spring 将使用 Jackson JSON 库将类型的实例自动编组Greeting为 JSON。 接下来,创建将提供这些问候语的资源控制器。...创建 REST 控制器 在 Spring 构建 RESTful Web 服务的方法中,HTTP 请求由控制器处理。...方法实现中最有趣的部分是如何创建指向控制器方法的链接以及如何将其添加到表示模型中。...请注意属性的值如何content从Hello, World!to更改,Hello, User!
要从头开始,请转到从 Spring Initializr 开始。...该GET请求应200 OK在正文中返回一个带有 JSON的响应,表示问候语。它应该类似于以下输出: { "id": 1, "content": "Hello, World!"...创建资源控制器 在 Spring 构建 RESTful Web 服务的方法中,HTTP 请求由控制器处理。...请注意content属性的值如何从Hello, World!变为Hello, User!,如下面的清单所示: {"id":2,"content":"Hello, User!"}...还要注意id属性如何从1变为2。这证明您正在GreetingController跨多个请求处理同一个实例,并且它的counter字段在每次调用时都按预期递增。 总结 恭喜!
要从头开始,请继续从 Spring Initializr 开始。...创建资源控制器 在 Spring 构建 RESTful Web 服务的方法中,HTTP 请求由控制器处理。...显示记录输出。该服务应在几秒钟内启动并运行。...content请注意属性的值如何从Hello, World!变为Hello, User!,如以下清单所示: {"id":2,"content":"Hello, User!"}...还要注意id属性是如何从1变为 的2。这证明您正在GreetingController跨多个请求处理同一个实例,并且其counter字段在每次调用时都按预期递增。 ---- 恭喜!
更简洁地讲,REST就是将资源的状态以最适合客户端或服务端的形式从服务器端转移到客户端(或者反过来)。...其实就是,比如我想要 application/json 格式的数据,REST服务就能为我提供JSON格式的数据;我想要 application/xml 格式的数据,REST服务就能为了提供XML格式的数据...二、Spring MVC 构建 REST API Spring 对 REST 提供了良好的支持,支持以下方式来创建 REST 资源: 控制器可以处理所有的HTTP方法,包含四个主要的REST方法...@RestController:如果在控制器类上使用@RestController来代替@Controller的话,Spring将会为该控制器的所有处理方法应用消息转换功能。...RestTemplate 的相关操作以及如何使用 SpringMVC创建REST端点可参考:https://github.com/JMCuixy/SpringMvcForRest
原标题:Spring国际认证指南|了解如何使用 Spring 创建支持跨域资源共享 (CORS) 的 RESTful Web 服务。...要从头开始,请继续从 Spring Initializr 开始。...启用 CORS 您可以从单个控制器或全局启用跨域资源共享 (CORS)。...以下主题介绍了如何执行此操作: 控制器方法 CORS 配置 全局 CORS 配置 控制器方法 CORS 配置 为了让 RESTful Web 服务在其响应中包含 CORS 访问控制标头,您必须向@CrossOrigin...显示记录输出。该服务应在几秒钟内启动并运行。
Spring 从 2014 年的 1.0.0 版本迭代到 现在的 5.2.0 M1 版本,紧随着 Java 语言发展,不断引入新的特性和功能。...请求超时设置 通常我们会对 HTTP 请求类进行执行行为的定制,例如调用超时时间设置,连接时长的限制等,而采用默认的 HttpURLConnection 默认的配置时, 从 SimpleClientHttpRequestFactory...参考资料 https://www.baeldung.com/rest-template http://blog.didispace.com/spring-boot-learning-21-1-1 https...://www.baeldung.com/spring-rest-template-multipart-upload https://www.zhihu.com/question/28557115 https....RELEASE/spring-framework-reference/integration.html#rest-client-access https://zh.wikipedia.org/wiki
如何使用 Spring Boot 创建 REST API ? Spring Boot 是一个功能强大的框架,可以轻松创建 RESTful API。...在本文中,我们将逐步指导如何使用 MySQL 和 JPA 在 Spring Boot 中创建 RESTful API。...接下来,我们需要创建一个控制器类来处理 REST API 的 HTTP 请求。...@RequestBody是 Spring Framework 中的一个注释,用于将 HTTP 请求正文绑定到控制器方法中的参数。...: 我们在 Spring Boot 中制作了 Rest API。
原标题:Spring国际认证指南|了解如何使用 jQuery 检索网页数据。 本指南将引导您编写一个使用基于 Spring MVC 的RESTful Web 服务的简单 jQuery 客户端。...你需要什么 约15分钟 最喜欢的文本编辑器 现代网络浏览器 互联网连接 创建一个 jQuery 控制器 首先,您将创建将使用 REST 服务的 jQuery 控制器模块: public/hello.js...它使用 jQuery 的方法来使用 http://rest-service.guides.spring.io/greeting$.ajax()上的 REST 服务。...REST 服务接收到的 JSON的值id和属性更新文本。...为了从 Spring Boot 的嵌入式 Tomcat 服务器提供静态内容,您还需要创建最少量的 Web 应用程序代码,以便 Spring Boot 知道启动 Tomcat。
前言 上一篇对 Spring Security 所有内置的 Filter 进行了介绍。今天我们来实战如何安全退出应用程序。 2....Spring Security 中的退出登录 接下来我们来分析并实战 如何定制退出登录逻辑。首先我们要了解 LogoutFilter 。...3.3 Spring Security 退出登录实战 现在前后端分离比较多,退出后返回json。而且只有用户在线才能退出登录。否则不能进行退出操作。...我们可以从 logout 方法的 authentication 变量中 获取当前用户信息。你可以通过这个来实现你具体想要的业务。比如记录用户下线退出时间、IP 等等。...你可以转发到其它控制器。
那是因为没有办法知道如何与这个服务器交互。如果您今天发布了此内容,您还必须编写文档或在某个地方托管开发人员的门户,其中包含所有详细信息。...这表明我们的 JSON 输出需要一点帮助。介绍Spring HATEOAS,这是一个 Spring 项目,旨在帮助您编写超媒体驱动的输出。...使用这个或其他技巧来美化 curl 返回的 json:# 指示部分将输出通过管道传输到 json_pp 并要求它使您的 JSON 更漂亮。(或者使用任何你喜欢的工具!)...您之前在控制器中看到的所有代码都可以移到此类中。并且通过应用 Spring Framework 的@Component注解,将在应用程序启动时自动创建汇编程序。...在这个阶段,您已经创建了一个实际生成超媒体驱动内容的 Spring MVC REST 控制器!不讲 HAL 的客户端可以在使用纯数据时忽略额外的位。使用 HAL 的客户可以浏览您授权的 API。
本文将介绍在使用Spring Boot构建REST API的时候如何进行合适的错误处理。 ? 在过去几年里,使用Spring构建REST API已经成为Java开发人员的标准方法。...如果你对如何开发基本的REST API并不熟悉,那么你应该先阅读这篇关于Spring MVC的文章或另一篇有关构建Spring REST服务的文章。...是否有更多的细节可以从错误产生的异常中提取出来呢? 下面,我们来学习如何正确地处理这些异常,并将它们包装成更好的JSON表示形式,让API客户端更容易识别。...ControllerAdvice是Spring 3.2中引入的注解,顾名思义,它是多控制器的“建议”。它使得单个ExceptionHandler应用于多个控制器上。...提供一些如何修复失败的呼叫的指导也很重要。 附录 译文来源:Spring Boot REST API错误处理指南-csdn
认识基于Spring的REST 3. Java配置 4. 测试Spring上下文 5. 控制器 6. 映射HTTP响应状态码 6.1. 未映射的请求 6.2.有效的映射请求 6.3....概览 本文展示了如何在Spring中配置REST——控制器和HTTP状态响应码、有效负载编排和内容协商的配置。 2....简单地从Web层的任何位置抛出这些异常,将确保Spring将相应的状态代码映射到HTTP响应上。...资源的表述转换为JSON或XML。...总结 本教程演示了如何使用Spring 4和Java配置来实现一个REST服务,讨论了HTTP响应码、基本内容协商和编排。
表述性(Representational):对于 REST 来说,我们网络上的一个个URI资源可以用各种形式来表述,例如:XML、JSON或者HTML等。...在4.0后的版本中,spring 支持一下方式创建 REST 资源: 控制器可以处理所有的 HTTP 方法,包含几个主要的 REST 方法:GET、POST、PUT、DELETE、PATCH; 借助 spring...Java 对象; 借助 RestTemplate ,spring 应用能够方便地使用 REST 资源。...四、基于Rest的Controller(控制器) 我们的 REST API : GET 方式请求 /api/user/ 返回用户列表 GET 方式请求 /api/user/1返回id为1的用户 POST..., @RequestBody, ResponseEntity 和 @PathVariable 这些注解 .另外, spring 也提供了一些支持类帮助你实现一些可定制化的东西。
原标题:Spring国际认证指南|了解如何使用 AngularJS 检索网页数据 本指南将引导您编写一个使用基于 Spring MVC 的RESTful Web 服务的简单 AngularJS 客户端...该服务将以JSON表示的问候进行响应: {"id":1,"content":"Hello, World!"}...你需要什么 约15分钟 最喜欢的文本编辑器 现代网络浏览器 互联网连接 创建一个 AngularJS 控制器 首先,您将创建将使用 REST 服务的 AngularJS 控制器模块: public/hello.js...如果成功,它会将服务返回的 JSON 分配给$scope.greeting,从而有效地设置一个名为“greeting”的模型对象。...为了从 Spring Boot 的嵌入式 Tomcat 服务器提供静态内容,您还需要创建最少量的 Web 应用程序代码,以便 Spring Boot 知道启动 Tomcat。
在本文中,我们将讨论并实现Spring的REST API异常处理。...Spring REST错误处理 Spring和Spring Boot提供了许多错误/异常处理选项。...(2)这个注释不是全局的,我们需要添加到每个控制器(不是很方便)。 大多数企业应用程序都是需要扩展Spring基类的控制器(也就是通用控制器)。...Boot REST异常处理 Spring Boot提供了许多构建RESTful API的功能。...在这篇文章中,我们介绍了实现Spring REST异常处理的不同选项。 为REST API构建一个良好的异常处理工作流是一个迭代和复杂的过程。
控制器会变得复杂,很多人会在Controller(Spring),Action(Struts)中写业务代码已经变得很常见,所有的操作都在控制器中,导致业务与控制器相耦合 5....上图可见,我们将View、Controller从传统的服务端MVC架构中迁移到客户端。客户端负责视图的渲染,交互的控制。数据的获取通过Restful API接口使用JSON格式交互。...遵循Hybris平台后端开发最佳实践 Hybris平台对于每一个页面请求,都有与之对应的控制器,并且平台的Web层基于Spring MVC框架,利用这些特点,我们决定将每一个OOTB 控制器包装成为一个完成数据交互的...由于在Rest API层面上,我们仍然采用DTO作为数据载体,可见,在这些默认的Rest Get方法中,将会侵入一些代码片断用来完成DTO到JSON的转换。...显而易见,如果在每一个默认的Rest Get方法中都加入转换代码不是一个很好的处理方式,会造成代码的过渡重复,产生坏味道。那么,我们如何从原始的代码中将数据转换的过程分离出来呢?
(3)OSX Homebrew安装 (4)MacPorts安装 (5)命令行完成 (6)快速启动Spring CLI示例 3.2、从较早版本的Spring Boot升级 4、开发你的第一个Spring...(1)彩色编码输出 4.3、文件输出 4.4、日志级别 4.5、自定义日志配置 4.6、Logback扩展 (1)配置文件特定的配置 (2)环境属性 5、开发Web应用程序 5.1、“Spring Web...(18)自动配置的Spring REST Docs测试 自动配置的Spring REST Docs使用Mock MVC进行测试 自动配置的Spring REST Docs使用REST Assured进行测试...MVC 4.1、编写一个JSON REST服务 4.2、编写一个XML REST服务 4.3、自定义Jackson ObjectMapper 4.4、自定义@ResponseBody呈现 4.5、处理多部分文件上传...记录 5.2、配置Logback进行日志记录 (1)为纯文件输出配置Logback 5.3、配置Log4j进行日志记录 (1)使用YAML或JSON配置Log4j 2 6、数据访问 6.1、配置一个自定义数据源
领取专属 10元无门槛券
手把手带您无忧上云