Chapter 27. RESTEasy Caching Features

RESTEasy provides a number of annotations to support HTTP caching semantics, to simplify processes such as setting Cache-Control headers, and to make both server-side and client-side in-memory caches available.

27.1. @Cache and @NoCache Annotations

RESTEasy provides an extension to JAX-RS that lets you set Cache-Control headers on successful GET requests. It can only be used on methods annotated with @GET. Successful get requests return a response of 200 OK.
package org.jboss.resteasy.annotations.cache;

public @interface Cache
{
   int maxAge() default -1;
   int sMaxAge() default -1;
   boolean noStore() default false;
   boolean noTransform() default false;
   boolean mustRevalidate() default false;
   boolean proxyRevalidate() default false;
   boolean isPrivate() default false;
}

public @interface NoCache
{
   String[] fields() default {};
}

@Cache builds a complex Cache-Control header; @NoCache specifies that you do not want anything to be cached. (That is, Cache-Control: nocache.)
You can place these annotations on the resource class or interface, or place them on each individual @GET resource method. They specify a default cache value for each @GET resource method.