org.springframework.cache.annotation

## Annotation Type Cacheable

-     @Target(value={METHOD,TYPE})
      @Retention(value=RUNTIME)
      @Inherited
      @Documented
      public @interface Cacheable

  Annotation indicating that a method (or all the methods on a class) can be cached.

  The method arguments and signature are used for computing the key while the returned instance is used as the cache value.

  Since:
    3.1
  Author:
    Costin Leau, Phillip Webb

- - ### Required Element Summary

    Required Elements
    Modifier and Type | Required Element and Description
    --- | ---
    `String[]` | `value` Name of the caches in which the update takes place.

  - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `String` | `condition` Spring Expression Language (SpEL) attribute used for conditioning the method caching.
    `String` | `key` Spring Expression Language (SpEL) attribute for computing the key dynamically.
    `String` | `unless` Spring Expression Language (SpEL) attribute used to veto method caching.

- - ### Element Detail

    - #### value

          public abstract String[] value

      Name of the caches in which the update takes place.

      May be used to determine the target cache (or caches), matching the qualifier value (or the bean name(s)) of (a) specific bean definition.

    - #### key

          public abstract String key

      Spring Expression Language (SpEL) attribute for computing the key dynamically.

      Default is "", meaning all method parameters are considered as a key.

      Default:
        ""

    - #### condition

          public abstract String condition

      Spring Expression Language (SpEL) attribute used for conditioning the method caching.

      Default is "", meaning the method is always cached.

      Default:
        ""

    - #### unless

          public abstract String unless

      Spring Expression Language (SpEL) attribute used to veto method caching.

      Unlike `condition()`, this expression is evaluated after the method has been called and can therefore refer to the `result`. Default is "", meaning that caching is never vetoed.

      Since:
        3.2
      Default:
        ""