Spring+Spring Boot各种实用的工具类

文章目录

        • 1 ClassUtils
        • 2 BeanUtils
        • 3 SpringFactoriesLoader
        • 4 ObjectUtils
        • 5 ReflectionUtils
        • 6 ResourceUtils
        • 7 SerializationUtils
        • 8 StringUtils
        • 9 SystemPropertyUtils
        • 10 Assert


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开头的方法

Spring+Spring Boot各种实用的工具类_第1张图片
方法的内部参数会含有一个回调对象,
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源码到处使用

你可能感兴趣的:(Spring源码)