1. @Cacheable
    1. 说明
      1. 主要针对可缓存的方法配置,如查找方法
      2. 先从缓存中读取,如果没有再调用方法获取数据,然后把数据添加到缓存中
    2. 参数
      1. value
        1. 缓存的名称,在 spring 配置文件中定义,必须指定至少一个
      2. key
        1. 缓存的 key,可以为空,如果指定要按照 SpEL 表达式编写,如果不指定,则缺省按照方法的所有参数进行组合
      3. condition
        1. 缓存的条件,可以为空,使用 SpEL 编写,返回 true 或者 false,只有为 true 才进行缓存
  2. @CachePut
    1. 说明
      1. 应用到写数据的方法上,如新增/修改方法
      2. 调用方法时会自动把相应的数据放入缓存
    2. 参数
      1. value
        1. 缓存的名称,在 spring 配置文件中定义,必须指定至少一个
      2. key
        1. 缓存的 key,可以为空,如果指定要按照 SpEL 表达式编写,如果不指定,则缺省按照方法的所有参数进行组合
      3. condition
        1. 缓存的条件,可以为空,使用 SpEL 编写,返回 true 或者 false,只有为 true 才进行缓存
  3. @CacheEvict
    1. 说明
      1. 主要针对移除数据的方法配置,如删除方法
      2. 调用方法时,根据一定的条件会从缓存中移除相应的数据
    2. 参数
      1. value
        1. 缓存的名称,在 spring 配置文件中定义,必须指定至少一个
      2. key
        1. 缓存的 key,可以为空,如果指定要按照 SpEL 表达式编写,如果不指定,则缺省按照方法的所有参数进行组合
      3. condition
        1. 缓存的条件,可以为空,使用 SpEL 编写,返回 true 或者 false,只有为 true 才进行缓存
      4. allEntries
        1. 是否清空所有缓存内容,缺省为 false,如果指定为 true,则方法调用后将立即清空所有缓存
      5. beforeInvocation
        1. 是否在方法执行前就清空,缺省为 false,如果指定为 true,则在方法还没有执行的时候就清空缓存,缺省情况下,如果方法执行抛出异常,则不会清空缓存