## 接口的使用
org.springframework.cache.Cache.ValueWrapper

- 使用Cache.ValueWrapper的程序包
  程序包 | 说明
  --- | ---
  org.springframework.cache | Spring's generic cache abstraction.
  org.springframework.cache.concurrent | Implementation package for `java.util.concurrent` based caches.
  org.springframework.cache.interceptor | AOP-based solution for declarative caching demarcation.
  org.springframework.cache.support | Support classes for the org.springframework.cache package.

- - ### org.springframework.cache中Cache.ValueWrapper的使用

    返回Cache.ValueWrapper的org.springframework.cache中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `Cache.ValueWrapper` | Cache.`get(Object key)` Return the value to which this cache maps the specified key.
    `Cache.ValueWrapper` | Cache.`putIfAbsent(Object key, Object value)` Atomically associate the specified value with the specified key in this cache if it is not set already.

  - ### org.springframework.cache.concurrent中Cache.ValueWrapper的使用

    返回Cache.ValueWrapper的org.springframework.cache.concurrent中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `Cache.ValueWrapper` | ConcurrentMapCache.`putIfAbsent(Object key, Object value)`

  - ### org.springframework.cache.interceptor中Cache.ValueWrapper的使用

    返回Cache.ValueWrapper的org.springframework.cache.interceptor中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `protected Cache.ValueWrapper` | AbstractCacheInvoker.`doGet(Cache cache, Object key)` Execute `Cache.get(Object)` on the specified `Cache` and invoke the error handler if an exception occurs.

  - ### org.springframework.cache.support中Cache.ValueWrapper的使用

    实现Cache.ValueWrapper的org.springframework.cache.support中的类
    限定符和类型 | 类和说明
    --- | ---
    `class` | `SimpleValueWrapper` Straightforward implementation of `Cache.ValueWrapper`, simply holding the value as given at construction and returning it from `SimpleValueWrapper.get()`.

    返回Cache.ValueWrapper的org.springframework.cache.support中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `Cache.ValueWrapper` | AbstractValueAdaptingCache.`get(Object key)`
    `Cache.ValueWrapper` | NoOpCache.`get(Object key)`
    `Cache.ValueWrapper` | NoOpCache.`putIfAbsent(Object key, Object value)`
    `protected Cache.ValueWrapper` | AbstractValueAdaptingCache.`toValueWrapper(Object storeValue)` Wrap the given store value with a `SimpleValueWrapper`, also going through `AbstractValueAdaptingCache.fromStoreValue(java.lang.Object)` conversion.