One way (which I used myself) is to create your own HandlerInterceptor .
public class CacheInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { Class<?> o = AopUtils.getTargetClass(handler); if (o.isAnnotationPresent(RequestCache.class)) { response.setDateHeader("Expires", o.getAnnotation(RequestCache.class).expire()); } return true; } ... }
and then
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> <property name="interceptors"> <array> <bean class="bla.bla.CacheInterceptor " /> </array> </property> </bean>
source share