Sam Brannen

Sam Brannen

Sam Brannen 是 Broadcom 的首席软件工程师,核心 Spring Framework 团队成员,也是 JUnit 5 的核心提交者。

博客文章Sam Brannen

Spring Framework 数据绑定规则漏洞 (CVE-2022-22968)

工程 | 2022 年 4 月 13 日 | ...

目录

概述

在调查 Spring Framework RCE 漏洞 CVE-2022-22965 及建议的解决方法时,我们意识到 WebDataBinder 上的 disallowedFields 配置设置不够直观且未清晰记录。我们已经修复了这个问题,但同时也决定为了安全起见发布一个后续的 CVE,以确保应用程序开发人员收到警报并有机会检查其配置。

我们已经发布了包含修复的 Spring Framework 5.3.19 和 5.2.21。Spring Boot 2.6.7 和 2.……

Spring Framework 3.2 RC1:新的测试特性

工程 | 2012 年 11 月 7 日 | ...

正如 Juergen Hoeller 在他宣布 Spring Framework 3.2 RC1 发布 的文章中提到的,Spring 团队在测试支持方面引入了一些令人兴奋的新特性。最重要的是,我们为测试 web 应用程序添加了一流的支持。[1]

      请注意:这是一篇从我的公司博客 www.swiftmind.com 交叉发布的文章。

在本文中,我们将首先介绍 Spring Framework 中的一些通用新测试特性,然后详细讨论对使用 WebApplicationContext 以及 requestsession 作用域 bean 进行测试的支持。最后,我们将介绍对 ApplicationContextInitializers 的支持,并简要讨论使用应用程序上下文层次结构进行测试的路线图。

Rossen Stoyanchev 稍后将发表一篇详细文章,介绍新的 Spring MVC Test 框架,该框架为测试 Spring MVC 应用程序提供了一流的支持。因此请务必关注,因为它是在本文稍后讨论的基础 web 测试支持的基础上构建的。



一般新特性和更新


构建和依赖项

spring-test 模块现在针对并支持 JUnit 4.10 和 TestNG 6.5.2 构建,并且 spring-test 现在依赖于 junit:junit-dep Maven 工件而不是 junit:junit,这意味着你可以完全控制对 Hamcrest 库(例如 hamcrest-corehamcrest-all 等)的依赖。

泛型工厂方法

泛型工厂方法是使用 Java 泛型实现 工厂方法设计模式 的方法。以下是一些泛型工厂方法的示例签名


public static <T> T mock(Class<T> clazz) { ... }

public static <T> T proxy(T obj) { ... }

在 Spring 配置中使用 泛型工厂方法 绝非仅限于测试,但泛型工厂方法,如 EasyMock.createMock(MyService.class)Mockito.mock(MyService.class),常用于在测试应用程序上下文中为 Spring bean 创建动态 mock。例如,在 Spring Framework 3.2 之前,以下配置可能无法将 OrderRepository 自动装配到 OrderService 中。原因是,根据 bean 在应用程序上下文中的初始化顺序,Spring 可能会将 orderRepository bean 的类型推断为 java.lang.Object 而不是 com.example.repository.OrderRepository


<beans>

  <!-- OrderService is autowired with OrderRepository -->
  <context:component-scan base-package="com.example.service"/>

  <bean id="orderRepository" class="org.easymock.EasyMock…

Spring 3.1 M2:使用 @Configuration 类和 Profiles 进行测试

工程 | 2011 年 6 月 21 日 | ...

正如 Jürgen Höller 在他宣布 Spring 3.1 M2 发布 的文章中提到的,Spring TestContext Framework(*) 已经过全面改进,为 @Configuration 类和环境 profiles 提供了第一类测试支持。

在本文中,我将首先通过一些示例向您介绍这些新的测试特性。然后,我将介绍 TestContext 框架中实现这些新特性的一些新扩展点。

      请注意:这是从我的公司博客 www.swiftmind.com 交叉发布的文章。

背景

在 Spring 2.5 中,我们引入了 Spring TestContext Framework,它提供了注解驱动的集成测试支持,可与 JUnit 或 TestNG 一起使用。本博客中的示例将重点介绍基于 JUnit 的测试,但此处使用的所有特性也适用于 TestNG。

TestContext 框架的核心是允许您使用 @ContextConfiguration 注解测试类,以指定用于为您的测试加载 ApplicationContext 的配置文件。默认情况下,使用 GenericXmlContextLoader 加载 ApplicationContext,该加载器从 XML Spring 配置文件加载上下文。然后,您可以通过使用 @Autowired@Resource@Inject 注解测试类中的字段来访问 ApplicationContext 中的 bean……

SpringSource Application Platform 部署选项

工程 | 2008 年 5 月 6 日 | ...

自从上周三发布 SpringSource Application Platform 以来,许多开发人员下载了 1.0.0 beta 版并开始试用该平台。因此,人们开始询问:“如何在平台部署我的应用程序?我有哪些部署和打包选项?”此外,开发人员渴望看到可运行的示例。作为回应,S2AP 团队将在未来几周内发布几个示例应用程序,展示这些特性以及更多内容,但在您获得这些示例之前,我想先给您一个高层次的……

领先一步

VMware 提供培训和认证,助您快速提升。

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部