
SpringBoot框架内置了多种实用工具类,可有效提升开发效率。本文将详细介绍10个常用工具类的核心功能和使用方法,帮助开发者更好地利用SpringBoot原生能力。
断言工具
断言用于检查程序中的异常情况,SpringBoot提供的Assert工具类常用于数据合法性验证:
// 检查对象非空,否则抛出异常
void notNull(Object object, String message)
// 检查对象必须为空
void isNull(Object object, String message)
// 检查条件必须为真
void isTrue(boolean expression, String message)
// 检查集合非空
void notEmpty(Collection collection, String message)
// 检查字符串有长度
void hasLength(String text, String message)
// 检查字符串有实际内容
void hasText(String text, String message)
// 检查对象类型
void isInstanceOf(Class type, Object obj, String message)
// 检查类继承关系
void isAssignable(Class superType, Class subType, String message)
对象操作工具
ObjectUtils
提供对象基本操作和判断功能:
// 获取对象类名
String nullSafeClassName(Object obj)
// 安全哈希码计算
int nullSafeHashCode(Object object)
// 数组判断
boolean isEmpty(Object[] array)
// 对象相等比较
boolean nullSafeEquals(Object o1, Object o2)
// 通用空值判断
boolean isEmpty(Object obj)
StringUtils
字符串处理工具类:
// 空字符串判断
boolean isEmpty(Object str)
// 忽略大小写的首尾检查
boolean endsWithIgnoreCase(String str, String suffix)
boolean startsWithIgnoreCase(String str, String prefix)
// 空白符处理
boolean containsWhitespace(String str)
String trimAllWhitespace(String str)
// 字符串替换和删除
String replace(String inString, String oldPattern, String newPattern)
String deleteAny(String inString, String charsToDelete)
CollectionUtils
集合操作工具:
// 集合空值判断
boolean isEmpty(Collection<?> collection)
boolean isEmpty(Map<?,?> map)
// 元素查找
boolean containsInstance(Collection<?> collection, Object element)
<E> E findFirstMatch(Collection<?> source, Collection<E> candidates)
// 集合合并操作
<E> void mergeArrayIntoCollection(Object array, Collection<E> collection)
文件资源工具
FileCopyUtils
文件流操作工具:
// 文件读取
byte[] copyToByteArray(File in)
String copyToString(Reader in)
// 文件写入
void copy(byte[] in, File out)
int copy(InputStream in, OutputStream out)
ResourceUtils
资源路径处理:
// 资源路径验证
static boolean isUrl(String resourceLocation)
// 资源获取
static URL getURL(String resourceLocation)
static File getFile(String resourceLocation)
StreamUtils
流数据处理:
// 流复制
long copyRange(InputStream in, OutputStream out, long start, long end)
// 流转换
byte[] copyToByteArray(InputStream in)
String copyToString(InputStream in, Charset charset)
反射与AOP工具
ReflectionUtils
反射操作工具:
// 方法查找
Method findMethod(Class<?> clazz, String name)
Method[] getAllDeclaredMethods(Class<?> leafClass)
// 方法执行
Object invokeMethod(Method method, Object target)
void makeAccessible(Method method)
// 字段操作
Field findField(Class<?> clazz, String name)
Object getField(Field field, Object target)
AopUtils
AOP代理判断:
// 代理类型判断
boolean isAopProxy()
boolean isJdkDynamicProxy()
boolean isCglibProxy()
// 目标类获取
Class<?> getTargetClass()
AopContext
代理对象获取:
// 获取当前代理对象
Object currentProxy()