@Retention(value=RUNTIME)
@Target(value={TYPE,FIELD,PARAMETER,METHOD})
@Documented
public @interface Cacheable
On types, this annotation means that the type will be cached.
On dependencies, means that the DI container should inject the cacheable version, not the cached one.