菜单

核心工具

相关源文件

核心工具子系统提供基本的辅助类和函数,支持 Spring Framework 中的常见编程任务。这些工具处理字符串操作、对象操作、反射、集合管理以及框架代码库中广泛使用的其他基础操作。

有关类型解析和转换机制的信息,请参阅类型系统和转换。有关资源抽象功能,请参阅资源和 I/O

工具类概述

Spring Framework 包含一套全面的工具类,主要位于 org.springframework.util 包中。这些工具专为框架内部使用而设计,但提供了健壮且经过充分测试的常见操作实现。

来源: spring-core/src/main/java/org/springframework/util/StringUtils.java1-66 spring-core/src/main/java/org/springframework/util/ClassUtils.java1-74 spring-core/src/main/java/org/springframework/util/ObjectUtils.java1-52 spring-core/src/main/java/org/springframework/util/ReflectionUtils.java1-48

字符串操作工具

StringUtils 类提供广泛的字符串处理能力,处理常见的操作,如验证、修剪、路径操作和字符串解析。该类是整个框架中字符串操作的基础。

核心字符串操作

操作类别关键方法目的
验证hasLength(), hasText()检查字符串有效性
修剪trimAllWhitespace(), trimLeadingCharacter()移除空白/字符
大小写操作capitalize(), uncapitalize()修改字符串大小写
路径操作cleanPath(), getFilename(), stripFilenameExtension()处理文件路径
解析delimitedListToStringArray(), commaDelimitedListToSet()在字符串和集合之间转换

来源: spring-core/src/main/java/org/springframework/util/StringUtils.java95-206 spring-core/src/main/java/org/springframework/util/StringUtils.java624-700 spring-core/src/main/java/org/springframework/util/StringUtils.java776-818

该类包含用于 URI 解码的专用方法 spring-core/src/main/java/org/springframework/util/StringUtils.java845-889 和区域设置解析 spring-core/src/main/java/org/springframework/util/StringUtils.java904-973,这些对于国际化支持至关重要。

类和类型工具

ClassUtilsTypeUtils 类提供了用于处理 Java 类、类型和反射元数据的复杂操作。这些工具处理类加载、类型解析和接口分析。

ClassUtils 核心功能

ClassUtils 类提供了一些关键功能区域

来源: spring-core/src/main/java/org/springframework/util/ClassUtils.java277-355 spring-core/src/main/java/org/springframework/util/ClassUtils.java613-641 spring-core/src/main/java/org/springframework/util/ClassUtils.java770-804

类型系统集成

TypeUtils 类提供高级类型检查和泛型类型解析功能 spring-core/src/main/java/org/springframework/util/TypeUtils.java1-50,与 Spring 的 ResolvableType 系统紧密协作,处理复杂的泛型类型场景。

来源: spring-core/src/main/java/org/springframework/util/ClassUtils.java499-563 spring-core/src/main/java/org/springframework/util/TypeUtils.java40-45

对象工具

ObjectUtils 类提供空安全操作、数组处理和对象比较工具,它们构成了整个框架中安全对象操作的基础。

主要对象操作

类别方法描述
空安全nullSafeEquals(), nullSafeHashCode(), nullSafeToString()安全的对象操作
数组操作addObjectToArray(), toObjectArray(), containsElement()数组操作
空检查isEmpty() 用于数组、集合、映射统一的空值测试
字符串表示identityToString(), getDisplayString()对象可视化

isEmpty() 方法 spring-core/src/main/java/org.springframework/util/ObjectUtils.java142-166 提供对不同对象类型的统一空检查

  • 数组(原始类型和对象)
  • 合集
  • Map
  • 字符序列
  • Optional 实例

来源: spring-core/src/main/java/org/springframework/util/ObjectUtils.java35-52 spring-core/src/main/java/org/springframework/util/ObjectUtils.java325-456 spring-core/src/main/java/org/springframework/util/ObjectUtils.java553-645

反射工具

ReflectionUtils 类提供全面的反射操作 API,包括方法调用、字段访问和带有适当异常处理的类型分析。

反射操作类别

来源: spring-core/src/main/java/org/springframework/util/ReflectionUtils.java212-287 spring-core/src/main/java/org/springframework/util/ReflectionUtils.java565-642 spring-core/src/main/java/org/springframework/util/ReflectionUtils.java92-173

该类包括复杂的缓存机制 spring-core/src/main/java/org/springframework/util/ReflectionUtils.java80-90,用于 getDeclaredMethods()getDeclaredFields() 操作,以优化反射性能。

集合工具

CollectionUtils 类提供工厂方法,用于创建最佳大小的集合,以及用于集合操作和分析的工具。

集合工厂方法

该类提供工厂方法,计算最佳初始容量以避免重新调整大小操作

来源: spring-core/src/main/java/org/springframework/util/CollectionUtils.java96-145

集合分析方法

该工具提供用于查找元素、检查唯一性和确定常见类型的方法

  • findValueOfType() - 定位特定类型的对象
  • hasUniqueObject() - 检查集合是否只包含一个唯一实例
  • findCommonElementType() - 确定共享元素类型
  • firstElement() - 从集合和列表中提取第一个元素

来源: spring-core/src/main/java/org/springframework/util/CollectionUtils.java311-425

专用集合实现

Spring 提供了专用集合实现,它们扩展了标准 Java 集合并具有框架特定的行为。

LinkedCaseInsensitiveMap

LinkedCaseInsensitiveMap 在维护插入顺序的同时提供不区分大小写的键查找,常用于 HTTP 标头和配置属性。

来源: spring-core/src/main/java/org/springframework/util/LinkedCaseInsensitiveMap.java50-128 spring-core/src/main/java/org/springframework/util/LinkedCaseInsensitiveMap.java185-243

LinkedMultiValueMap

LinkedMultiValueMap 允许每个键对应多个值,同时保持插入顺序,这对于表单数据和查询参数至关重要。

来源: spring-core/src/main/java/org/springframework/util/LinkedMultiValueMap.java25-107 spring-core/src/main/java/org/springframework/util/MultiValueMapAdapter.java1-50

模式匹配工具

PatternMatchUtils 类提供简单的模式匹配功能,支持 Spring 典型的通配符模式:xxx**xxx*xxx*xxx*yyy

模式匹配功能

来源: spring-core/src/main/java/org/springframework/util/PatternMatchUtils.java23-147

文件系统工具

FileSystemUtils 类提供跨平台文件操作,特别是递归删除功能,可处理传统的 File 对象和现代 NIO Path 对象。

该类提供基于传统 File 的操作 spring-core/src/main/java/org/springframework/util/FileSystemUtils.java60-65 和基于现代 NIO Path 的操作 spring-core/src/main/java/org/springframework/util/FileSystemUtils.java80-120,用于递归目录操作。

来源: spring-core/src/main/java/org/springframework/util/FileSystemUtils.java35-45

日志工具

LogFormatUtils 类提供专门为日志上下文设计的格式化工具,具有值截断、换行符替换和安全字符串表示等功能。

日志格式功能

  • 值截断(可配置限制)
  • 单行日志中的换行符和控制字符替换
  • CharSequence 对象的自动引用
  • 安全的 toString() 处理及异常恢复
  • 基于跟踪/调试级别的条件日志记录

来源: spring-core/src/main/java/org/springframework/util/LogFormatUtils.java37-123