Sam Brannen

Sam Brannen

Sam Brannen 是博通公司的高级软件工程师,Spring Framework 核心团队成员,以及 JUnit 5 的核心提交者。

博客文章作者Sam Brannen

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

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

目录

概述

在调查 Spring Framework 远程代码执行漏洞 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]

      请注意:这是我 Swiftmind 公司博客的 交叉发布

在这篇文章中,我们将首先了解 Spring Framework 中一些新的通用测试功能,然后我们将详细介绍如何使用 WebApplicationContext 以及作用域为 请求会话 的 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 创建动态模拟。例如,在 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 类和配置文件进行测试

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

正如 Jürgen Höller 在他宣布 发布 Spring 3.1 M2 的文章中提到的那样,Spring TestContext Framework(*) 已进行了全面改进,以提供对 @Configuration 类和环境配置文件的一流测试支持。

在这篇文章中,我将首先引导您完成一些演示这些新测试功能的示例。然后,我将介绍 TestContext 框架中的一些新扩展点,这些扩展点使这些新功能成为可能。

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

背景

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

从本质上讲,TestContext 框架允许您使用 @ContextConfiguration 注释测试类,以指定要使用哪些配置文件来加载测试的 ApplicationContext。默认情况下,ApplicationContext 使用 GenericXmlContextLoader 加载,该加载程序从 XML Spring 配置文件加载上下文。然后,您可以通过使用 @Autowired@Resource@Inject 注释测试类中的字段来访问 ApplicationContext 中的 Bean……

SpringSource 应用程序平台部署选项

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

自从我们上周三发布 SpringSource 应用程序平台以来,许多开发人员已下载了 1.0.0 测试版并开始试用该平台。因此,人们开始询问:“如何将我的应用程序部署到平台上,以及我有哪些部署和打包选项?” 此外,开发人员渴望看到有效的示例。作为回应,S2AP 团队将在未来几周内发布几个示例应用程序,演示这些功能以及更多功能,但在您获得这些示例之前,我想先向您提供高级别的……

领先一步

VMware 提供培训和认证,以加快您的进度。

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部