Spring+Spring Boot各种实用的工具类
文章目录
1 ClassUtils
该类是针对于Class类的常见操作工具类。
可以查看:ClassUtilsTests进行学习
2 BeanUtils
Static convenience methods for JavaBeans: for instantiating beans,checking bean property types, copying bean properties, etc.
see:BeanUtilsTests
3 SpringFactoriesLoader
该工具也是spring boot 自动装配的核心方法,内部实际上使用了ClassLoader.getResource() 对classpath路径下的文件解析。
4 ObjectUtils
对象操作工具类,包含了对象类型校验,原始数据类型(数组)转换包装类,判空,判null,hash值的基础操作
5 ReflectionUtils
这个类也是针对于Class类的基础操作,我们在源码ClassUtils也可以看到,注释已经在提示我们同样看这个类
ReflectionUtils内部对于Class类的操作很丰富,其中,我们可以重点关注一下以do开头的方法
方法的内部参数会含有一个回调对象,
FieldCallback:处理Field的回调对象
MethodCallback:处理Method的回调回调
其核心的功能是,获取传递过来Class<?> clazz 对象的内部Field或者是Method(内部通过getDeclaredFields和getDeclaredMethods获取当前类声明的所有Field和Method),然后回调给对应的FieldCallback和MethodCallback分别执行
不带local的方法是会递归获取父类的信息:
targetClass = targetClass.getSuperclass();
6 ResourceUtils
该类可以结合spring内部的Resource实现看。
spring对于Resource的内部实现主要是:
ClassPathResource:
FileSystemResource:
UrlResource:
spring内部的ResourceLoader接口定义了
Resource getResource(String location); 方法
对于spring的ApplicationContext,其对应子类实现了ResourceLoader接口。
7 SerializationUtils
序列化:
8 StringUtils
字符操作,这样的工具类不要太多
9 SystemPropertyUtils
配置文件解析:用于解析含有${}类型的注解值,其内部是通过:
PropertyPlaceholderHelper 进行解析的
10 Assert
断言,这个在spring源码到处使用