缓存概述

缓存模块是以EhCache作为默认JVM进程内缓存服务,通过整合外部Redis服务实现多级缓存(MultiLevel)的轻量级缓存框架,并与YMP框架深度集成(支持针对类方法的缓存,可以根据方法参数值进行缓存),灵活的配置、易于使用和扩展;

Maven包依赖

<dependency>
    <groupId>net.ymate.platform</groupId>
    <artifactId>ymate-platform-cache</artifactId>
    <version>2.0-SNAPSHOT</version>
</dependency>

  • 在项目的pom.xml中添加上述配置,该模块已经默认引入核心包依赖,无需重复配置。
  • 若需要启用redis作为缓存服务,请添加以下依赖配置:

    <dependency>
        <groupId>net.ymate.platform</groupId>
        <artifactId>ymate-platform-persistence-redis</artifactId>
        <version>2.0-SNAPSHOT</version>
    </dependency>

基础接口概念

开发者可以根据以下接口完成对缓存模块的自定义扩展实现;

  • 缓存服务提供者(ICacheProvider)接口:

    • DefaultCacheProvider - 基于EhCache缓存服务的默认缓存服务提供者接口实现类;
    • RedisCacheProvider - 基于Redis数据库的缓存服务提供者接口实现类;
    • MultievelCacheProvider - 融合EhCache和Redis两者的缓存服务提供者接口实现类,通过MultilevelKey决定缓存对象的获取方式;
  • 缓存Key生成器(IKeyGenerator)接口:

    • DefaultKeyGenerator - 根据提供的类方法和参数对象生成缓存Key,默认是将方法和参数对象进行序列化后取其MD5值;
  • 序列化服务(ISerializer)接口:

    • DefaultSerializer - 默认序列化服务采用JDK自带的对象序列化技术实现;
  • 缓存事件监听(ICacheEventListener)接口:用于监听被缓存对象发生变化时的事件处理,需开发者实现接口;

  • 缓存作用域处理器(ICacheScopeProcessor)接口:用于处理@Cacheable注解的Scope参数设置为非DEFAULT作用域的缓存对象,需开发者实现接口;