MyBatis 中,Cache 是缓存接口,定义了一些基本的缓存操作,所有缓存类都应该实现该接口。 MyBatis 内部提供了丰富的缓存实现类:

  • PerpetualCache
    • 具有基本缓存功能
  • LruCache
    • 具有 LRU 策略的缓存
  • SynchronizedCache
    • 可保证线程安全的缓存
  • BlockingCache
    • 具备阻塞功能的缓存

除此之外,还有很多缓存实现类。MyBatis 在实现缓存模块的过程中,使用了装饰模式。

  • PerpetualCache 相当于装饰模式中的ConcreteComponent
  • LruCache、SynchronizedCache和BlockingCache等相当于装饰模式中的ConcreteDecorator。