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/blob/4e410681aa77f44b61f27542ec29308008412d42/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/env/DevToolsPropertyDefaultsPostProcessor.java

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);

}



Posted by '김용환'
,