别再重复造轮子!SpringBoot 内置的 20个高效工具类

别再重复造轮子!Spring Boot 内置的 20 个高效工具类

Spring Boot(其实主要是 Spring Framework 的 spring-core 模块)内置了大量实用工具类,位于 org.springframework.util 包下。这些类经过海量项目验证,稳定高效,能帮你处理字符串、集合、反射、资源等常见操作,避免自己手写低质代码。很多人还在重复造轮子(如自己写 isEmpty、copyStream),其实直接用这些就行!下面精选 20 个最常用、最炸裂的工具类,配代码示例和实际场景,建议收藏~

  1. StringUtils:字符串神器,判空、截取、替换、转数组一应俱全。
   StringUtils.hasText("   "); // false(忽略空白)
   StringUtils.capitalize("hello"); // "Hello"
   StringUtils.collectionToDelimitedString(list, ","); // 集合转逗号字符串
  1. CollectionUtils:集合操作王者,判空、交并差集超方便。
   CollectionUtils.isEmpty(list); // true if null or empty
   CollectionUtils.containsAny(coll1, coll2); // 是否有交集
  1. ObjectUtils:对象/数组通用工具,null安全处理。
   ObjectUtils.nullSafeEquals(obj1, obj2); // null安全比较
   ObjectUtils.isEmpty(array); // 支持数组判空
  1. Assert:断言工具,参数校验必备(抛 IllegalArgumentException)。
   Assert.notNull(obj, "对象不能为空!");
   Assert.hasText(str, "字符串必须有内容!");
  1. ReflectionUtils:反射简化,访问私有字段/方法无痛。
   ReflectionUtils.makeAccessible(field); // 破私有
   ReflectionUtils.doWithFields(clazz, fieldCallback); // 遍历字段
  1. StopWatch:性能计时神器,支持多任务分段。
   StopWatch sw = new StopWatch();
   sw.start("任务1"); // ... sw.stop();
   System.out.println(sw.prettyPrint()); // 美观打印
  1. FileCopyUtils:IO 流复制,文件/流操作简洁。
   FileCopyUtils.copy(inputStream, outputStream);
  1. StreamUtils:流处理增强,复制、非缓冲等。
   StreamUtils.copyToString(inputStream, Charset.defaultCharset());
  1. ResourceUtils:资源加载(如 classpath:file:)。
   ResourceUtils.getFile("classpath:application.yml");
  1. ClassUtils:类操作,判断接口、获取类加载器。 ClassUtils.isAssignableValue(targetClass, obj);
  2. AopUtils:AOP 相关,判断是否代理对象。 AopUtils.isAopProxy(bean); // 是否代理
  3. NumberUtils:数字解析/转换,支持格式。 NumberUtils.parseNumber("123.45", Double.class);
  4. SystemPropertyUtils:系统属性占位符解析(如 ${})。 SystemPropertyUtils.resolvePlaceholders("${java.home}");
  5. MimeTypeUtils:MIME 类型处理(Spring 5+ 增强)。 MimeTypeUtils.APPLICATION_JSON;
  6. AntPathMatcher:Ant 风格路径匹配(/*/)。 new AntPathMatcher().match("/api/**", "/api/user");
  7. LinkedMultiValueMap:多值 Map(一个 key 多 value),常用于请求参数。 MultiValueMap<String, String> map = new LinkedMultiValueMap<>(); map.add("key", "value1"); map.add("key", "value2");
  8. MultiValueMap:接口版多值 Map。
  9. PropertiesLoaderUtils:加载 properties 文件。 Properties props = PropertiesLoaderUtils.loadAllProperties("config.properties");
  10. SerializationUtils:对象序列化/反序列化(基于 JDK)。 byte[] data = SerializationUtils.serialize(obj);
  11. TypeUtils:类型兼容判断(Spring 5+)。
    java TypeUtils.isAssignable(targetType, sourceType);

为什么这些工具类“血赚不亏”?

  • 代码简洁:减少 boilerplate,判空/复制/反射一两行搞定。
  • null 安全:大部分方法 null 友好,避免 NPE。
  • 性能优化:经过 Spring 团队打磨,高效稳定。
  • 避免坑:自己写容易漏边角案例,这些经亿级项目验证。

还在自己写 if (str == null || str.trim().isEmpty()) 的兄弟们,赶紧用 StringUtils.hasText() 吧!这些工具类在任何 Spring Boot 项目中开箱即用(starter 依赖自带)。学会它们,你的代码瞬间专业级~😂

如果你常用哪个?或有其他隐藏神器,欢迎分享!下一个项目,直接抄这些 utils,效率起飞!

文章已创建 3216

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部