Paul Chapman

Paul Chapman

校友
博文Paul Chapman

Pivotal 宣布 Spring 课程和认证变更

工程 | 2017 年 5 月 10 日 | ...

引言

自从我教授第一堂 Core Spring 课程以来,已将近 10 年。那时几乎所有内容都是 XML,配置 JPA 或 Spring Security 等可能需要大量艰苦的工作。与此同时,Spring 已经成熟了很多,通过组件扫描、Java 配置和 Spring Boot,使用起来更加有趣。而且 Spring 项目的数量也大大增加了。

Pivotal 培训继续加强我们的 Spring 课程并引入新课程——包括 Spring Boot Developer 和 Spring Cloud Services。我已经提供了这些的概述……

使用 Spring 的微服务

工程 | 2015 年 7 月 14 日 | ...

引言

注意:2019 年 7 月修订

使用 Spring、Spring Boot 和 Spring Cloud 设置微服务系统的简单示例。

微服务允许大型系统由许多协作组件构建。它在进程级别实现了 Spring 在组件级别一直做的事情:松散耦合的进程而不是松散耦合的组件。

Shopping Application

例如,想象一个在线商店,其中包含用于用户帐户、产品目录订单处理和购物车等的独立微服务。

不可避免地,您必须设置和配置许多动态部件才能……

Spring MVC 中的异常处理

工程 | 2013 年 11 月 1 日 | ...

注意:2018 年 4 月修订

Spring MVC 提供了几种补充的异常处理方法,但是,在教授 Spring MVC 时,我经常发现我的学生对它们感到困惑或不适应。

今天我将向您展示可用的各种选项。我们的目标是尽可能在 Controller 方法中“不”显式处理异常。它们是一个横切关注点,最好在专门的代码中单独处理。

有三个选项:按异常、按控制器或全局。

一个演示应用程序显示此处讨论的要点,可在 http://github.com/paulc4/mvc-exceptions 找到。请参阅示例应用程序……

使用视图进行内容协商

工程 | 2013 年 6 月 3 日 | ...

在我之前的文章中,我介绍了内容协商的概念以及 Spring MVC 用于确定所请求内容的三个策略。

在这篇文章中,我想专门扩展这个概念,以使用 ContentNegotiatingViewResolver (或 CNVR) 支持不同内容类型的多个视图。

快速概览

由于我们已经知道如何从之前的文章中设置内容协商,因此使用它在多个视图之间进行选择非常简单。只需像这样定义一个 CNVR


    <!--
      // View resolver that delegates to other view resolvers based on the
      // content type…

使用 Spring MVC 进行内容协商

工程 | 2013 年 5 月 11 日 | ...

使用 Spring MVC 生成输出有两种方式

  • 您可以使用 RESTful @ResponseBody 方法和 HTTP 消息转换器,通常用于返回 JSON 或 XML 等数据格式。程序客户端、移动应用程序和启用 AJAX 的浏览器是常见的客户端。
  • 或者,您可以使用视图解析。尽管视图完全能够根据您的需要生成 JSON 和 XML(更多内容将在我的下一篇文章中介绍),但视图通常用于为传统的 Web 应用程序生成 HTML 等表示格式。
  • 实际上还有第三种可能性——有些应用程序需要两者,Spring MVC 很容易支持这种组合。我们将在最后回到这一点。

无论哪种情况,您都需要处理控制器返回的相同数据的多种表示形式(或视图)。确定要返回哪种数据格式称为内容协商

有三种情况我们需要知道要在 HTTP 响应中发送哪种数据格式

  • HttpMessageConverters: 确定要使用的正确转换器。
  • 请求映射: 将传入的 HTTP 请求映射到返回不同格式的不同方法。
  • 视图解析: 选择要使用的正确视图。

确定用户请求的格式依赖于 ContentNegotationStrategy。开箱即用提供了默认实现,但您也可以根据需要实现自己的。

在这篇文章中,我想讨论如何配置和使用 Spring 的内容协商,主要是在使用 HTTP 消息转换器的 RESTful 控制器方面。在稍后的文章中,我将展示如何专门使用 Spring 的 ContentNegotiatingViewResolver 来设置内容协商……

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有