核心工具子系统提供基本的辅助类和函数,支持 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,这些对于国际化支持至关重要。
ClassUtils 和 TypeUtils 类提供了用于处理 Java 类、类型和反射元数据的复杂操作。这些工具处理类加载、类型解析和接口分析。
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 提供对不同对象类型的统一空检查
来源: 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 在维护插入顺序的同时提供不区分大小写的键查找,常用于 HTTP 标头和配置属性。
来源: spring-core/src/main/java/org/springframework/util/LinkedCaseInsensitiveMap.java50-128 spring-core/src/main/java/org/springframework/util/LinkedCaseInsensitiveMap.java185-243
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 类提供专门为日志上下文设计的格式化工具,具有值截断、换行符替换和安全字符串表示等功能。
toString() 处理及异常恢复来源: spring-core/src/main/java/org/springframework/util/LogFormatUtils.java37-123