Paul Chapman

Paul Chapman

校友
作者博客文章Paul Chapman

Pivotal 发布 Spring 课程与认证变更

工程 | May 10, 2017 | ...

引言

从我第一次教授 Core Spring 课程到现在已经快 10 年了。那时候几乎所有东西都是 XML 配置,例如配置 JPA 或 Spring Security 会非常费力。与此同时,随着组件扫描、Java 配置和 Spring Boot 的出现,Spring 变得更加成熟,使用起来也更加有趣。并且 Spring 项目的数量也大大增加了。

Pivotal Training 不断改进我们的 Spring 课程并引入新课程 - 包括 Spring Boot Developer 和 Spring Cloud Services。我已经提供了这些课程的概览…

使用 Spring 构建微服务

工程 | July 14, 2015 | ...

引言

注意: 2019 年 7 月修订

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

微服务允许大型系统由许多协作组件构建。它在进程级别实现的功能,与 Spring 在组件级别实现的功能相同:松散耦合的进程而非松散耦合的组件。

Shopping Application

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

不可避免地,你需要设置和配置许多动态部件…

Spring MVC 中的异常处理

工程 | November 01, 2013 | ...

注意: 2018 年 4 月修订

Spring MVC 提供了几种互补的异常处理方法,但在教授 Spring MVC 时,我经常发现学生们对这些方法感到困惑或不熟悉。

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

有三种选项:按异常类型、按控制器或全局处理。

演示本文讨论要点的应用程序可以在 http://github.com/paulc4/mvc-exceptions 找到。请参阅示例应用程序

使用视图进行内容协商

工程 | June 03, 2013 | ...

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

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

快速概览

既然我们已经知道如何从之前的文章中设置内容协商,那么使用它来选择多个视图就非常简单了。只需像这样定义一个 CNVR


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

使用 Spring MVC 进行内容协商

工程 | May 11, 2013 | ...

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

  • 您可以使用 RESTful @ResponseBody 方法和 HTTP 消息转换器,通常用于返回 JSON 或 XML 等数据格式。编程客户端、移动应用和支持 AJAX 的浏览器是常见的客户端。
  • 或者您可以使用视图解析。虽然视图完全能够生成 JSON 和 XML(如果需要,我的下一篇文章会详细介绍),但视图通常用于为传统 Web 应用程序生成 HTML 等演示格式。
  • 实际上还有第三种可能性 - 有些应用程序同时需要这两种方式,而 Spring MVC 可以轻松支持这种组合。我们将在最后回到这一点。

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

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

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

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

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

领先一步

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

了解更多

获取支持

Tanzu Spring 通过一个简单的订阅,提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

近期活动

查看 Spring 社区的所有近期活动。

查看全部