728x90
스프링부트로 정적파일(JS, CSS 등)들을 캐시에 담아서 자원낭비를 막아보자.
1. WebConfig 생성 후 WeMvcConfigurer 인터페이스를 상속
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
}
2. registry에 리소스핸들러, 리소스로케이션, 캐시컨트롤 등을 추가
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
VersionResourceResolver versionResourceResolver = new VersionResourceResolver();
versionResourceResolver.addContentVersionStrategy("/**"); // 버전
registry
.addResourceHandler("/**")
.addResourceLocations("classpath:/static/", "classpath:/resources/static/")
.setCacheControl(CacheControl.maxAge(CACHE_DAYS, TimeUnit.DAYS)) // 예시: 30일 동안 캐시 유지
.resourceChain(true)
.addResolver(new EncodedResourceResolver())
.addResolver(versionResourceResolver);
}
VersionResourceResolver는 정적파일에 변화가 있을 때 그걸 감지해서 버전을 바꿔준다.
그래서 해당 파일만 클라이언트에서 새로 다운받을 수 있게 해준다.
- BEFORE
- AFTER
끝
- from chatGPT
728x90
'개발 > Java & Kotlin' 카테고리의 다른 글
[Spring] AbstractAuthenticationProcessingFilter, OncePerRequestFilter 차이 (159) | 2024.06.06 |
---|---|
[Java] OrElse, OrElseGet 차이 (165) | 2024.04.15 |
[Spring] addAttribute, addFlashAttribute 차이 (95) | 2024.03.13 |
[Java] DTO, DAO, VO 차이 알아보기 (79) | 2023.10.10 |
[Java] 오브젝트: 코드로 이해하는 객체지향 설계 (2) (151) | 2023.10.02 |