UriComponentsBuilder는 여러개의 파라미터를 이용하여 URL를 작성할 때에 굉장히 편하게 작성할 수 있게끔 도와준다.
UriComponentsBuilder (Spring Framework 5.2.8.RELEASE API)
Request to have the URI template pre-encoded at build time, and URI variables encoded separately when expanded. In comparison to UriComponents.encode(), this method has the same effect on the URI template, i.e. each URI component is encoded by replacing no
docs.spring.io
해당 링크를 참조해서 작성하였고, 위 링크에 자세하게 나와있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
String urlString="https://example.com/hotels/42?filter={value}";
UriComponents uri = UriComponentsBuilder.fromHttpUrl(urlString)
.buildAndExpand("hot&cold");
System.out.println(uri.toString());
// https://example.com/hotels/42?filter=hot&cold
UriComponents uri = UriComponentsBuilder.newInstance()
.path("https://www.bepoz-study-diary.com")
.queryParam("subject","uricomponentsbuilder")
.build();
System.out.println(uri.toString());
// https://www.bepoz-study-diary.com?subject=uricomponentsbuilder
|
cs |
첫 번째의 경우는 fromHttpUrl 메서드를 이용한 방법이다. String 타입을 파라미터로 받고 있다.
해당 fromHttpUrl 메서드에도 2번째 경우와 마찬가지로 queryParam 을 이용하여 parameter를 추가해줄 수가 있는데,
그 외에 {value} 이 부분에 "hot&cold"를 expand 하고 build 시킬 수 있다.
두 번째 경우는 새롭게 처음부터 작성해주는데, path 값을 적고 param을 집어 넣고 build를 해준다.
위 방법처럼 newInstance() 대신 fromPath("") 를 적어줄 수도 있다.
상세 내용은 본문 가장 위 docs를 보면 더 확실하게 알 수 있다.
fromPath와 newInstance() 만 알아도 일상에서 사용하는데에 큰 무리 없을 것 같다.
'Spring' 카테고리의 다른 글
[Spring] @ResponseStatus 를 이용해 예외 상태 변경하기 (0) | 2020.09.15 |
---|---|
[Spring] PathVariable 사용법 (0) | 2020.09.15 |
ENUM 에 대해 알아보자 (0) | 2020.07.31 |
스프링 시큐리티 denied Page 404 뜨는 이유 (0) | 2020.07.31 |
Spring Data JPA, Querydsl 조금 정리 (0) | 2020.07.21 |