Spring框架使用了很多工具,它们有各自不同的功能作用,但我们还是可以根据一些共同点对它们进行归类。比如根据它们所操作的实体概念(也就是业务目的),或者根据其组织形式(也就是所谓的"模式")。本文基于工具组织形式的相似性对Spring工具做一些梳理,以便再次遇到一个Spring工具时,我们可以快速理解和掌握其主要业务功能和目的。

下面是几种常见的Spring工具的类型 :

  • XXXUtils – 静态工具方法类
  • 特征 :
  • 通常以Utils作为类名后缀
  • 类的成员函数定义为public static
  • 一般不通过创建类实例方式使用,而是通过直接XXXUtils.func()被使用
  • 一般完全无状态,(即使有状态,也一般是维护类静态成员属性static member field )
  • 工具方法命名通常可以"望文知意",可以知道其目的
  • XXXConfigurer – "某某"配置器
  • TBD
  • XXXEnhancer – "某某"增强器
  • TBD
  • XXXLoader – "某某"加载器
  • TBD
  • XXXPostProcessor – "某某"后置处理器
  • TBD
  • XXXVisitor – "某某"访问器
  • TBD
  • XXXSupport – "某某"支持
  • 特征 :
  • 一般是抽象类,位于类继承层次结构的中间位置(不是实现类,一般也不是顶层基类)
  • 抽象了子类工具语义共性的某些部分,提供了共同属性访问,共用逻辑工具方法
  • 例子 : PlaceholderConfigurerSupport
  • XXXHelper – "某某"小助手
  • 特征 :
  • 从类名称可以推测出是针对哪个特定的模块或者功能区域,但是看不出目的
  • 类一般需要实例化然后调用其某个功能完成指定任务
  • 例子 : PropertyPlaceholderHelper
  • XXXComposite – "某某"组合器
  • 特征 :
  • 从类名称可以推测出这是一组同类工具的组合
  • 该组合类和被组合的工具类通常实现同样的接口
  • 该组合类对接口方法的实现其实是调用所有被组合工具的该接口方法
  • 例子 : WebMvcConfigurerComposite
  • Builder – 构建器
  • 特征 :
  • 使用Builder设计模式