스프링 부트 개념과 활용
4. 스프링 부트 활용
포스팅 참조 정보
GitHub
공부한 내용은 GitHub에 공부용 Organizations에 정리 하고 있습니다
해당 포스팅에 대한 내용의 GitHub 주소
실습 내용이나 자세한 소스코드는 GitHub에 있습니다
포스팅 내용은 간략하게 추린 핵심 내용만 포스팅되어 있습니다
https://github.com/freespringlecture/springboot-concept-uses/tree/chap04-09-04-mvc-staticresource
해당 포스팅 참고 인프런 강의
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard
실습 환경
- Java Version: Java 11
- SpringBoot Version: 2.1.2.RELEASE
9. 스프링 웹 MVC 4부: 정적 리소스 지원
정적 리소스 맵핑 /**
기본 리소스 위치
- classpath:/static
- classpath:/public
- classpath:/resources/
- classpath:/META-INF/resources
ex) “/hello.html” => /static/hello.html
리소스 위치 변경
기본적으로 resource들은 root(/) 부터 Mapping이 되어있음
spring.mvc.static-path-pattern: 맵핑 설정 변경 가능
spring.mvc.static-path-pattern=/static/**
spring.mvc.static-locations: 리소스 찾을 위치 변경 가능
Last-Modified 헤더를 보고 304 응답을 보냄
Request Headers의 if-Modified-Since 이후에 바뀌었으면 클라이언트에 새로운 Resource를 보냄
바뀌지 않았으면 클라이언트에 304의 응답을 보내고 새로운 Resource를 보내지 않아서 응답이 훨씬 빨라짐
이런식의 캐싱이 동작함
ResourceHttpRequestHandler가 처리함원
WebMvcConfigurer의 addRersourceHandlers로 커스터마이징 할 수 있음
SpringBoot가 제공하는 Resource Handler는 그대로 놔두면서 내가 원하는 Resource Handler만 따로 추가
기본적으로 SpringBoot가 제공하는 Resource Handler과 캐싱 전략이 다르므로 별도로 캐싱 처리를 해줘야됨
1. addResourceHandler 설정
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/m/**") // /m 으로 시작하는 요청이 오면
.addResourceLocations("classpath:/m/") // classpath 기준으로 m 디렉토리 밑에서 제공
.setCachePeriod(20); // 20초
}
}
2. classpath에 m
디렉토리 추가
'개발강의정리 > Spring' 카테고리의 다른 글
[스프링 부트 개념과 활용] 4-9. 스프링 웹 MVC 6부: index 페이지와 파비콘 (0) | 2019.11.10 |
---|---|
[스프링 부트 개념과 활용] 4-9. 스프링 웹 MVC 5부: 웹JAR (0) | 2019.11.09 |
[스프링 부트 개념과 활용] 4-9. 스프링 웹 MVC 3부: ViewResolve (0) | 2019.11.07 |
[스프링 부트 개념과 활용] 4-9. 스프링 웹 MVC 2부: HttpMessageConverters (0) | 2019.11.06 |
[스프링 부트 개념과 활용] 4-9. 스프링 웹 MVC 1부: 소개 (0) | 2019.11.05 |
댓글