kok202
스프링 부트 강의 정리 (15 : WebJar)

2019. 4. 24. 13:30[공부] 영상/스프링 부트 강의

WebJar : 프론트엔드 라이브러리를 jar 형태로 패키징해놓은 형태. 

JQuery 같은 것을 메이븐을 통해서 다운 받을 수 있다.

메이븐으로 설치한 JQuery를 프론트엔드에서 라이브러리를 사용할 수 있다.

추가한 라이브러리는 webjars/ 이하 경로를 통해서 가져올수있다.

 

 

 

 

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.4.0</version>
</dependency>

HTML JQuery 선언

<script type-"javascript" src="/webjars/jquery/3.4.0/jquery.min.js" />

 

 

 

 

 

스프링 부트에서 캐시에 자유롭게 변경된 내용을 계속 반영해주는 방법

방법 1. 버전 agnostirng URL : 

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>webjars-locator-core</artifactId>
</dependency>

방법 2. 캐시 버스팅 : 캐시될 파일 이름의 뒤에다 해쉬코드값을 붙여서 캐시에 독립적으로 동작하도록 한다.

# Cache busting properties
spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**

 

 

 

 

 

 

Welcome page

index.html을 맨 처음 찾는다.

존재하지 않으면 index template을 찾는다. (템플릿 : 타임리프, 프리마커, 핸들러 등...)

단 Welcome page 의 동작은 루트로 맵핑한 핸들러 맵핑(GetMapping)이 없을 때 동작한다.

 

Favicon

브라우저 탭에 있는 아이콘 설정

설정된 static 파일 위치에 "favicon.ico" 파일이 있으면 알아서 등록해준다.

 

Content 협상

kok202 아이디의 유저 정보를 json 으로 리턴하는 코드가 있다고하자 (@GetMapping("/user/{userId}"))

kok202 아이디의 유저 정보를 xml 으로 받고싶다.

그래서 "curl -GET /user/kok202.xml" 에 대응하는 맵핑을 만드는 것은 부적절하다.

이 방법을 suffix pattern 이라고 하고 옛날 코드의 잔해다.

스프링은 suffix pattern을 기본으로 제공하지 않는다.

만약 꼭 suffix pattern을 사용하고 싶다면 아래 설정을 주자.

spring.mvc.contentnegotiation.favor-path-extension=true
spring.mvc.pathmatch.use-registered-suffix-pattern=true

가능하면 아래 방법중 하나를 쓰자

방법 1. "curl -GET /user/kok202?format=xml"

방법 2. "curl -GET --header "Accept:application/xml" /user/kok202"