spring boot에서는 resource 디렉토리 밑의 정적 자원의 파일 캐시 기능을 사용할 수 있다.
spring.resources.cache-period=3600
해당 프로퍼티를 적용하면, 3600초동안 캐시하고, HTTP 상태코드는 200이 아닌 304를 리턴한다.
참고로 1.3.0 부터 사용할 수 있는 devtools(cool swapping tool)을 사용하면 cache는 무조건 0으로 설정된다. 즉 사용하지 않도록 설정되어 있다.
properties.put("spring.resources.cache-period", "0");
https://github.com/spring-projects/spring-boot/commit/4e410681aa77f44b61f27542ec29308008412d42
resource cache 뿐 아니라. 캐쉬는 모두 사용하지 않도록 되어 있다.
public class DevToolsPropertyDefaultsPostProcessor implements EnvironmentPostProcessor {
private static final Map<String, Object> PROPERTIES;
static {
Map<String, Object> properties = new HashMap<String, Object>();
properties.put("spring.thymeleaf.cache", "false");
properties.put("spring.freemarker.cache", "false");
properties.put("spring.groovy.template.cache", "false");
properties.put("spring.velocity.cache", "false");
properties.put("spring.mustache.cache", "false");
properties.put("server.session.persistent", "true");
properties.put("spring.h2.console.enabled", "true");
properties.put("spring.resources.cache-period", "0");
PROPERTIES = Collections.unmodifiableMap(properties);
}