Paul Chapman

Paul Chapman

校友
博客文章作者Paul Chapman

Pivotal 宣布 Spring 课程和认证变更

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

引言

我第一次教授核心 Spring 课程至今已近十年了。那时几乎所有东西都是 XML,例如配置 JPA 或 Spring Security 可能会非常费力。在此期间,Spring 已经发展成熟,组件扫描、Java 配置和 Spring Boot 使其使用起来更加有趣。而且 Spring 项目 的数量也大幅增加。

Pivotal 培训持续改进我们的 Spring 课程并引入新的课程,包括 Spring Boot 开发人员和 Spring Cloud 服务。我已经对这些内容进行了概述……

使用 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 时,我经常发现我的学生对此感到困惑或不自在。

今天,我将向您展示可用的各种选项。我们的目标是尽可能不在控制器方法中显式处理异常。它们是最好在专用代码中单独处理的跨领域问题。

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

一个演示应用程序展示了此处讨论的要点,可以在 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 社区中所有即将举行的活动。

查看全部