-
스프링 부트 10일차 - ViewResolve, Static Resource, WebJarPortfolio/Spring Boot 2019. 4. 15. 21:09728x90
1. Accept Header에 따라 요청의 응답이 어떤 타입인지 결정됨. (Accept는 클라이언트가 서버에게 이러이러한 데이터를 원한다고 알려주는 것임)
EX) .accept(MediaType.APPLICATION_JSON_UTF8)
2. 근데 Accept가 없는 요청도 날아오는데, 그럴때 query parameter로 ?format=xxx 같은 식으로 url에 표현되기도 함.
3. JSON 데이터와 XML 데이터를 받게될 때 그 데이터에 대해 서로 변환시켜줄 컨버터가 필요하다. 그때 사용할 수 있는 컨버터가
다음 컨버터이다.
<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.9.6</version> </dependency>
jackson-dataformat-xml 컨버터를 사용하여 두 데이터를 변경해줄 수 있다. * 사용자가 원할 때 스프링부트에서 컨텐트 네고시에이션 뷰 리졸버가 선택하여 응답을 만들어주는 것임.
4. 정적 리소스 매핑은 다음과 같은 위치가 기본 위치이다.
- classpath:/static
- classpath:/public
- classpath:/resources/
- classpath:/META-INF/resources
5. 매핑 위치는 바꾸고 싶거나 패턴을 바꾸고 싶으면 다음과 같이 이용하면 됨.
- pring.mvc.static-path-pattern: 맵핑 설정 변경 가능
- spring.mvc.static-locations: 리소스 찾을 위치 변경 가능
6. ResourceHttpRequestHandler가 요청을 처리하게 되는데, 리소스가 변경되지 않았다면 304응답을 해서 캐시파일을 사용하도록함.
7. 5를 사용하게되면 4에서 스프링부트가 기본으로 사용하고 있는 경로 매핑은 오버라이딩 됨.
8. 만약 4의 매핑 경로를 유지하면서 커스터마이징 하고 싶다면 다음과 같은 코드로 시도하면됨.
@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/m/**") .addResourceLocations("classpath:/m/") .setCachePeriod(20);
9. 프론트엔드 관련 라이브러리의 의존성들(JS, CSS 파일 등)을 WebJar 형태로 관리하고 있음. maven에서 의존성 추가로 가져올 수 있음.
* webjars-locator-core 의존성을 사용하면 버전을 생략하는 것도 가능
'Portfolio > Spring Boot' 카테고리의 다른 글
스프링 부트 14일차 - EntityManager, @Entity, @Table, @Column (0) 2019.05.27 스프링 부트 13일차 - Spring Data JPA (0) 2019.05.26 스프링 부트 12일차 - CORS, 인메모리 DB(H2), DBCP, JdbcTemplate, Spring Data JPA (0) 2019.04.18 스프링 부트 11일차 - index 페이지, 파비콘, 템플릿 엔진, HtmlUnit, ExceptionHandler (0) 2019.04.16 스프링 부트 9일차 - Spring-Boot-Devtools, 스프링 웹 MVC (0) 2019.04.09 스프링 부트 8일차 - 스프링 부트 테스트 (0) 2019.04.08 스프링 부트 7일차 - 스프링 부트 Jar, SpringApplication, 로거 (0) 2019.04.07 스프링 부트 6일차 - 스프링 부트 내장 웹 서버, SSL/HTTP2 적용 (0) 2019.04.06 스프링 부트 5일차 - 스프링 부트 AutoConfigure (0) 2019.04.05 스프링 부트 4일차 - 스프링 부트 프로젝트 구조와 의존성 그리고 자동설정 (0) 2019.04.04